-
- Хм... А do ... while(0); это зачем? - Bill(13.10.2010 06:59)
- Переменные X,Y используются только в этом блоке. Скрипач(496 знак., 13.10.2010 08:59)
- Для оформления блока достаточно поставить скобки {...}. Это будет подсказкой и для программиста, и для компилятора. Bill(13 знак., 13.10.2010 09:05)
- В макросах удобнее do-while, чтоб компилятор потребовал ';' поставить... - fk0(13.10.2010 11:13)
- видимо, именно из макросов и растут эти ноги - koyodza(13.10.2010 11:45)
- +1 - Snaky(13.10.2010 09:09)
- Видимо какой-то компилятор "просто-пару-скобок" не понимал. Текущий GCC, вы правы, понимает и так. - Скрипач(13.10.2010 09:16)
- Ы-ы-ы... Кто же то такой был? Ещё «до-ансишные» копиляторы по «первому K&R» в середине 80-ых на ДВК это понимали. Ну два из трёх точно, а один упрощённый столько всего не понимал (начиная от вложенных структур), что сразу был задвинут ReAl(250 знак., 13.10.2010 09:24)
- в MPLAB-C16 такое точно было - Vit(13.10.2010 09:52)
- Не помню. Думаю это был какой-то "левый", который позволял на Си для ATtiny1200 писать. Да и так ли это важно? - Скрипач(13.10.2010 09:46)
- Ы-ы-ы... Кто же то такой был? Ещё «до-ансишные» копиляторы по «первому K&R» в середине 80-ых на ДВК это понимали. Ну два из трёх точно, а один упрощённый столько всего не понимал (начиная от вложенных структур), что сразу был задвинут ReAl(250 знак., 13.10.2010 09:24)
- Видимо какой-то компилятор "просто-пару-скобок" не понимал. Текущий GCC, вы правы, понимает и так. - Скрипач(13.10.2010 09:16)
- В макросах удобнее do-while, чтоб компилятор потребовал ';' поставить... - fk0(13.10.2010 11:13)
- Для оформления блока достаточно поставить скобки {...}. Это будет подсказкой и для программиста, и для компилятора. Bill(13 знак., 13.10.2010 09:05)
- иногда полезная конструкция, но в данном случае очевидно бессмысленна. - Snaky(13.10.2010 07:08)
- Интересно, а в каких случаях она является полезной? - Bill(13.10.2010 07:29)
- использую как минимум в двух случаях: Snaky(1220 знак., 13.10.2010 07:49 - 07:52)
- В ссылке на stackoverflow как всегда смешное, рекомендую читать man free для начала и не писать говнокода, откуда такие заблуждения вообще пошли? Вот натыкался: fk0(219 знак., 13.10.2010 11:24)
- ссылки я позже нагуглил и добавил, отредактировав сообщение. мопед не мой (с) :> - Snaky(13.10.2010 13:23)
- О! Замена goto. Интересная мысль. - SciFi(13.10.2010 09:07)
- Понятно! Ну, макросами я не особо пользуюсь. А вот использовать do...while(0); или goto это дело вкуса программиста. Лично я Bill(170 знак., 13.10.2010 08:12)
- ну это упрощенный пример - набросал прямо по ходу. на самом деле может быть более сложный, например такой блок: Snaky(469 знак., 13.10.2010 08:25 - 08:27)
- На самом деле такое использование break -- ЗАМАСКИРОВАННЫЙ GOTO!!! А goto, как известно, абсолютное зло во всех вселенных. А ведь можно вместо break с таким же успехом и longjmp... Хотя академически-правильно по-моему иметь вложенные функции и из fk0(128 знак., 13.10.2010 11:27)
- Да, наглядность превыше всего! Или нет? - Bill(13.10.2010 08:30)
- ну дык. не последняя вещь. а от многоэтажных вложенных if-else-if голова кружится :> - Snaky(13.10.2010 08:36)
- в примере есть каммент // etc etc - там может быть Ваша реклама;) - Vit(13.10.2010 08:18)
- ну это упрощенный пример - набросал прямо по ходу. на самом деле может быть более сложный, например такой блок: Snaky(469 знак., 13.10.2010 08:25 - 08:27)
- В ссылке на stackoverflow как всегда смешное, рекомендую читать man free для начала и не писать говнокода, откуда такие заблуждения вообще пошли? Вот натыкался: fk0(219 знак., 13.10.2010 11:24)
- использую как минимум в двух случаях: Snaky(1220 знак., 13.10.2010 07:49 - 07:52)
- Интересно, а в каких случаях она является полезной? - Bill(13.10.2010 07:29)
- Переменные X,Y используются только в этом блоке. Скрипач(496 знак., 13.10.2010 08:59)
- Можно попроще, словами? А то я тоже щас свои коды накидаю... - mazur(12.10.2010 23:24)
- В двух словах Скрипач(583 знак., 12.10.2010 23:37 - 23:43)
- Я прикрепил ваш пример. mazur(534 знак., 14.10.2010 00:59 - 01:04)
- Нет, _10mS константа с которой сравнивают. Получение разности системного таймера с сохраненным значением "спрятано" в Timer() - Скрипач(14.10.2010 09:29 - 09:55)
- Только вот при использовании такой архитектуры напрямую сильно страдает модульность программы, вплоть до превращения её в говнокод. ya(1123 знак., 13.10.2010 11:18, )
- Ы-ы-ы, о чем вы? Был же (там->) пример, как работать с задержками изнутри задач. Без описанных вами извратов. - Скрипач(13.10.2010 21:57, ссылка)
- Во-первых надуманно, во-вторых есть методы обхода. Да, у каждого модуля есть функция, которую нужно вызывать регулярно. Не обязательно раз в 10мс, как можно чаще, но не реже, чем раз в 100мс -- вот так верней. Функция внутри сама проверяет время fk0(1971 знак., 13.10.2010 11:44)
- Этот и ответ Vit-а решает две мои проблемы. Как с каруселькой, так и с с параллельными автоматами. - mazur(12.10.2010 23:43)
- Мы с Vit посоветовали одно и тоже. На самом деле, такая организация системы - классика. Скрипач(447 знак., 12.10.2010 23:50 - 13.10.2010 00:02)
- Я прикрепил ваш пример. mazur(534 знак., 14.10.2010 00:59 - 01:04)
- В двух словах Скрипач(583 знак., 12.10.2010 23:37 - 23:43)
- Хм... А do ... while(0); это зачем? - Bill(13.10.2010 06:59)