Пользователям IAR C (AVR прежде всего). Только что обнаружили некорректность(?) компилятора.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 04 июня 2003 г. 13:48

Точнее - некорректность(?) препроцессора, связанная с обработкой директивы define.


#define _6_BIT 1<<6
и
#define _6_BIT (1<<6)

дают разные результаты при обработке выражения
PORT &= ~_6_BIT; // Сбросить бит
Т.е. препроцессор тупо подставляет текст из макроопределения со всеми вытекающими последствиями. Возможно это так и должно быть, но я встречал компиляторы (и сам делал так), которые текст макроопределения заключают в скобки (...). Будьте внимательны!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru