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

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

Ну, если это не только нам с Доком интересно, то для Вас специальный рецепт: проверьте экстремальный вариант без do, без while(0), даже без {}, >>

Отправлено VasilyS (80.92.96.25) 04 января 2010, г. 20:05
В ответ на: Ваш пример работает и без do{...}while(0), только {...} достаточно. Давайте другой пример, мне тоже интересно отправлено koyodza 04 января 2010, г. 17:10

Заодно, так и быть, поделюсь с Доком военной тайной как впихнуть несколько операторов в один :-). Все отчень просто. Жаль,не на чем проверить, может, синтаксис подработать, важен только принцип и полет фаниазии, может, выражение в дифайне надо объять () - в некоторых случаях это надо.
А ключевые слова при поиске в дебрях ANSI, Док, такие: "выражения, разделенные запятой, выполняются слева направо". И (от себя замечу) считаются одним оператором. Hi, Doc!

#define something() P1OUT = 123, printf("Hi,Doc!\n"), P2OUT = 234
void Test()
{
uint8_t i;
something();
for( i = 0; i < 5; ++i)
something();
if(P1IN & 1) something();
else printf("test");}



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

Ответы


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

Сообщение:

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

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

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

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