реклама на сайте
подробности

 
 
> Представление констант в бинарном виде, в gcc
forever failure
сообщение Feb 21 2007, 17:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



В соседней ветке пробегала похожая тема, но всё таки...
Есть два компилятора avr-gcc разных версий: один в составе WinAVR (версия 3.4.6), другой самостоятельно собраный из стандартных исходников (версия 3.4.4). Первый понимает запись константы в бинарной форме (типа 0b1010101 == 0x55), второй - нет. Это зависти от версии компилятора или еще от каких-то дополнительных расширений ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
aesok
сообщение Feb 21 2007, 19:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(forever failure @ Feb 21 2007, 17:22) *
В соседней ветке пробегала похожая тема, но всё таки...
Есть два компилятора avr-gcc разных версий: один в составе WinAVR (версия 3.4.6), другой самостоятельно собраный из стандартных исходников (версия 3.4.4). Первый понимает запись константы в бинарной форме (типа 0b1010101 == 0x55), второй - нет. Это зависти от версии компилятора или еще от каких-то дополнительных расширений ?


Нужно поставить патч на GCC, называеться 'patch-0b-constants', взять можно отсюда: http://www.freebsd.org/cgi/cvsweb.cgi/port.../avr-gcc/files/

Анатолий.
Go to the top of the page
 
+Quote Post
forever failure
сообщение Feb 21 2007, 19:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Thanx, всё ясно теперь.
Интересно, можно ли его будет переделать под другое сочетание host/target?

В догон. Какие ещё компиляторы поддерживают такое представление?
У себя нашёл, что Intel C++ тоже понимает такие числа.
Go to the top of the page
 
+Quote Post
aesok
сообщение Feb 21 2007, 19:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(forever failure @ Feb 21 2007, 19:22) *
Thanx, всё ясно теперь.
Интересно, можно ли его будет переделать под другое сочетание host/target?

Этот патч должен работать на всех платформах.

Цитата
В догон. Какие ещё компиляторы поддерживают такое представление?
У себя нашёл, что Intel C++ тоже понимает такие числа.


В стандартном С нет двоичной записи целых чисел, только восьмеричная, десятичная и шестнадцатеричная. Если вам нужна переносимость кода между разными компиляторами не используйте двоичные константы.

Анатолий.
Go to the top of the page
 
+Quote Post
forever failure
сообщение Feb 21 2007, 20:04
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Понятно, что это расширение языка. Однако, насколько я знаю оно поддерживается не менее, чем тремя компиляторами. И хотелось бы знать, в каких ещё средах разработки можно было бы расчитывать на использование этого средства.
А со временем, глядишь оно и в стандарт войдёт (ведь есть же представление плавучих констант в хекс-формате).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 08:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016