[an error occurred while processing this directive] [an error occurred while processing this directive]
что значит #define (маленькая лекция)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено yes 26 декабря 2001 г. 13:32
В ответ на: Вопрос по битовым операциям в С для АVR отправлено С_чайник 26 декабря 2001 г. 12:23

это текстовая подстановка - то есть до того как программа будет обработана С компилятором, ее обрабатывает препроцессор (обычно называется срр)

препроцессор просто производит замену кусков текста так же как Вы это делаете по кнопке cntrl-F в Ворде (или какую там кнопку чертов Билли для этого приспособил)

то есть в Вашем примере С компилятор получит вместо букв (токена) clk PORTD.5; то есть сlk=1 будет заменено на PORTD.5;=1 то есть здесь полный бардак с точки зрения С компилятора

из этого выводы:
; после #define не ставить
и вообще обращаться к битам по другому (например как предложил Andy Дюх)

а
#define ENABLE_BIT_DEFININTIONS 1
может быть использовано для "условной компиляции"

к примеру
#ifdef ENABLE_BIT_DEFININTIONS
какой нибудь код
#endif

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

Ответы



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

E-mail: info@telesys.ru