Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Имею в виду обертку для дефайна. Пример, придуманный от балды

Отправлено rezident (77.43.130.155) 04 января 2010, г. 00:31
В ответ на: Насчет обёртки цикла, ей-Бо, не понял. Опишите поконкретнее примерчик пожалуйста. отправлено VasilyS 03 января 2010, г. 23:22

Вот такой вариант скомпилируется без ошибок
#define LEDOUT(var,bit) do {if ((var&bit)==0) P1OUT&=~0x01;\
else P1OUT|=0x01;} while(0)

if ((var_alrm&ALARM_BIT1)!=0)
LEDOUT(state,ALARM_BIT1);
else
LEDOUT(state,ALARM_BIT1);

А в таком варианте компилятор выдаст ошибку на строке с else
#define LEDOUT(var,bit) if ((var&bit)==0) P1OUT&=~0x01;\
else P1OUT|=0x01;

if ((var_alrm&ALARM_BIT1)!=0)
LEDOUT(state,ALARM_BIT1);
else //тут после работы препроцессора возникает ошибка
LEDOUT(state,ALARM_BIT1);


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru