Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Дело не совсем в IF и скобках. Макроc может и как безусловный оператор использоваться. Обертка do { } while(0) позволяет использовать его в любом варианте, невзирая на ленность кодера и его стиль программирования ;)
Отправлено
rezident
(77.43.130.155)
04 января 2010, г. 01:07
В ответ на:
Второй вариант вы имели в виду #define LEDOUT(var,bit) { if ((var&bit)==0) P1OUT&=~0x01; else P1OUT|=0x01; }. Обо всем этом я упоминал и варианты решений без while(0) давал. Ошибки не будет, если >>
отправлено
VasilyS
04 января 2010, г. 00:58
Составить ответ
|
Вернуться на конференцию
Ответы
Причем сама обертка не влияет на размер кода, т.к. оптимизируется (выкидывается) на этапе компиляции.
-
rezident
(04.01.2010, 01:08:44
77.43.130.155
,
пустое
)
Тогда возвращаемся: Приведите пожалуйста пример, где "проблемно" или "невозможно" при написании или подстановке макроса обойтись без do{}while(0), а я утверждаю что сделаю его посредством {}, которые кода тоже не потребляют :-) Можно и на следующей странице продолжить.
-
VasilyS
(04.01.2010, 10:09:38
80.92.96.25
,
пустое
)
Скорее всего ты прав. Иногда программисты любят извращённый стиль, отсюда и do ... while (0)
-
ZoltriX
(04.01.2010, 11:23:24
78.40.231.89
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru