-
- Все хорошо в меру. И дурной тон получается, когда что-то не в меру: Bill(77 знак., 06.03.2006 23:50, )
- Короче я понял. Если без goto или brake совсем уж невмоготу, то можно. А если просто от лени - тогда иди на Васике пиши... MDenis(56 знак., 07.03.2006 14:19, )
- Где-то так. ReAl(1532 знак., 07.03.2006 14:52, )
- а зачем приводить явно к void? imho и без этого стандарты не нарушены. а вообще такой вот заворот с логическим ИЛИ очень похоже на питон-конструкции ;-) - bialix(07.03.2006 15:28, )
- Такое приведение - как флажок себе, что я не потерял перед этим длинным условием слово "if" :-) - ReAl(07.03.2006 15:44, )
- бррр... так ведь это не условие, это просто логическое выражение. По-моему там и без скобок все будет работать bialix(130 знак., 07.03.2006 16:18, )
- Приведение к (void) - это не неявный флажок, а ЯВНОЕ указание, что результат логического выражения никому не нужен, нужны только побочные эффекты. ReAl(360 знак., 07.03.2006 18:34, )
- внешние скобки и приведение к void. Я бы просто написал в комментах, что bialix(380 знак., 07.03.2006 22:55, )
- Как это делаю я vet1(369 знак., 07.03.2006 16:50, )
- тогда лучше ReAl(286 знак., 07.03.2006 18:07, )
- Именно на такой конструкции IAR почему-то спотыкается :( vet1(44 знак., 07.03.2006 18:19, )
- Это он ОЧЕНЬ зря. do { } while(0) - это традиционные "скобки" для макросов из нескольких операций. - ReAl(07.03.2006 18:48, )
- Именно на такой конструкции IAR почему-то спотыкается :( vet1(44 знак., 07.03.2006 18:19, )
- присваивание к status можно опустить, потому что не всегда компилятор может заоптимизировать такую переменную в /dev/null - bialix(07.03.2006 17:27, )
- тогда лучше ReAl(286 знак., 07.03.2006 18:07, )
- Приведение к (void) - это не неявный флажок, а ЯВНОЕ указание, что результат логического выражения никому не нужен, нужны только побочные эффекты. ReAl(360 знак., 07.03.2006 18:34, )
- бррр... так ведь это не условие, это просто логическое выражение. По-моему там и без скобок все будет работать bialix(130 знак., 07.03.2006 16:18, )
- Такое приведение - как флажок себе, что я не потерял перед этим длинным условием слово "if" :-) - ReAl(07.03.2006 15:44, )
- а зачем приводить явно к void? imho и без этого стандарты не нарушены. а вообще такой вот заворот с логическим ИЛИ очень похоже на питон-конструкции ;-) - bialix(07.03.2006 15:28, )
- я как раз от лени goto и ставлю Romario(377 знак., 07.03.2006 14:39, )
- А вот это, IMHO, рецидивы ассемблера. ReAl(154 знак., 07.03.2006 14:55, )
- Ответ: Romario(133 знак., 07.03.2006 15:07, )
- НЕ.. Так нельзя... Так в MS работают. Нельзя написать хреново кусок что б "потом когда-нибудь" его привести в порядок. MDenis(393 знак., 07.03.2006 15:15, )
- задача профессионала зарабатывать себе на жизнь, а не мусолить строки в коде доводя его до идеала ((с) с некоторыми поправками:) Romario(125 знак., 07.03.2006 15:35, )
- Ещё раз - на мой взгляд, если быстро не сочиняется нужная структура - значит недообдумана ЛОГИКА РАБОТЫ программы (на фазе "до кодирования"), и она работать будет ПЛОХО. - ReAl(07.03.2006 15:46, )
- это уже религиозное... иногда, чтобы написать алгоритм "чисто" нужно потратить больше времени на кодирование и в результате получить менее оптимальный код. bialix(158 знак., 07.03.2006 16:40, )
- Ключевое слово ПРОДЖУМАНО. А romario в исходном посте написал ReAl(78 знак., 07.03.2006 18:11, )
- ok Romario(2434 знак., 07.03.2006 18:24, )
- Попытался отрешиться от твоего кода и прикинуть - а как бы я решал эту задачу. ReAl(3880 знак., 08.03.2006 20:37, )
- Пардон! Ошибочка вышла - для исходного подсчёты были не для меги8, а для classic AVR. Правильная табличка ReAl(164 знак., 08.03.2006 20:57, )
- А!!! Так это же ниагарский водопад!!! - ReAl(07.03.2006 19:51, )
- (ччёрт, enter не вовремя нажал) - в смысле классическая (в некотором смысле "типовая" - см соседний тред "без претензии на флейм") конструкция switch/do-while ReAl(1710 знак., 07.03.2006 19:53, )
- мда. не знал, что такое в си можно делать. постараюсь забыть этот трюк и никогда не использовать bialix(391 знак., 08.03.2006 01:59, )
- Да, "никогда не использовать" - это я понимаю и согласен, но забывать не стоит - иначе скоро выйдет "фортран-программу можно написать на любом языке" - ReAl(08.03.2006 21:09, )
- Это не совсем мой код. Чья идея - не помню, но в книжке было указано - чьё изобретение. ReAl(588 знак., 08.03.2006 21:07, )
- я смотрел 15 минут и не ржал, потому что bialix(83 знак., 08.03.2006 22:00, )
- Тем не менее именно это и есть штатное использование case Сергей Борщ(350 знак., 08.03.2006 02:30, )
- завернутость заключается не в подряд идущих case а то что сразу после switch влез цикл do/while, причем Romario(70 знак., 08.03.2006 13:07, )
- "case" - никогда вообще не "отрабатывает". Он просто *метка* для перехода, осуществляемого switch. ReAl(98 знак., 08.03.2006 21:17, )
- я имел ввиду что "логически" отрабатывается (строится таблица переходов) - Romario(09.03.2006 12:28, )
- Да, я это потом заметил но сообщение то ли затерлось то ли не дошло. - Сергей Борщ(08.03.2006 17:45, )
- даже не так bialix(220 знак., 08.03.2006 15:05, )
- "case" - никогда вообще не "отрабатывает". Он просто *метка* для перехода, осуществляемого switch. ReAl(98 знак., 08.03.2006 21:17, )
- завернутость заключается не в подряд идущих case а то что сразу после switch влез цикл do/while, причем Romario(70 знак., 08.03.2006 13:07, )
- хм...хитра конструкция. я такую первый раз вижу:) честно. - Romario(07.03.2006 19:57, )
- Всё, печатаю дампы накомпилированного с твоего и "моего" варианта компилятором avr-gcc и иду в метро разницу смотреть. - ReAl(07.03.2006 19:55, )
- да, на первый взгляд это эквивалентно, согласен. НО..бл@ть, извиняюсь, как завернуто!!!:)) - Romario(07.03.2006 19:58, )
- Как-то в инете напоролся на подобную штуку, засунул в ИАР АВРовский... she(306 знак., 07.03.2006 20:20, )
- а для 32 битника этот вариант даже лучше. 1 раз сделал табличку по переходу на case и в цикле. однако, имхо, этот код из разряда tips & tricks - Romario(07.03.2006 20:49, )
- Дело не в разрядности... she(800 знак., 07.03.2006 22:50, )
- да, пардон. под 32 битником я имел ввиду более ''правильные'' компилеры и более мощную архитектуру проца. и этот код для них ничем не отличается с goto. - Romario(08.03.2006 13:10, )
- Просто он сделал switch как раз через табличку и IJUMP ReAl(535 знак., 08.03.2006 12:35, )
- Дело не в разрядности... she(800 знак., 07.03.2006 22:50, )
- а для 32 битника этот вариант даже лучше. 1 раз сделал табличку по переходу на case и в цикле. однако, имхо, этот код из разряда tips & tricks - Romario(07.03.2006 20:49, )
- Как-то в инете напоролся на подобную штуку, засунул в ИАР АВРовский... she(306 знак., 07.03.2006 20:20, )
- да, на первый взгляд это эквивалентно, согласен. НО..бл@ть, извиняюсь, как завернуто!!!:)) - Romario(07.03.2006 19:58, )
- мда. не знал, что такое в си можно делать. постараюсь забыть этот трюк и никогда не использовать bialix(391 знак., 08.03.2006 01:59, )
- есть такой термин? я про него не в курсе:) - Romario(07.03.2006 19:52, )
- Не, ниагарсикй водопад - это из анекдота про ушастых туземцев и их вождя с шишкой на лбу. - ReAl(07.03.2006 19:56, )
- (ччёрт, enter не вовремя нажал) - в смысле классическая (в некотором смысле "типовая" - см соседний тред "без претензии на флейм") конструкция switch/do-while ReAl(1710 знак., 07.03.2006 19:53, )
- sz на входе произвольное? - ReAl(07.03.2006 19:13, )
- нет конечно, макс 256 байт. для упакованных это будет 224. ну вот енкодер если что (без goto:)) Romario(1790 знак., 07.03.2006 19:18, )
- А вот это ты зря :-) Тебе надо было сюда кинуть, скажем, только верхний комментарий из того кода и словесное описание "чего надо" ReAl(150 знак., 07.03.2006 19:10, )
- p.s. Romario(354 знак., 07.03.2006 18:39, )
- Попытался отрешиться от твоего кода и прикинуть - а как бы я решал эту задачу. ReAl(3880 знак., 08.03.2006 20:37, )
- ok Romario(2434 знак., 07.03.2006 18:24, )
- Ключевое слово ПРОДЖУМАНО. А romario в исходном посте написал ReAl(78 знак., 07.03.2006 18:11, )
- речь не о логике ВСЕЙ ПРОГРАММЫ, речь о некоторых вспомогательных, мелких, процедурках. - Romario(07.03.2006 15:49, )
- Чем продседура мельче - тем проще ее "вылизать". А уж коль с мелкой не получается нефиг за крупные браться.. Нельзя за спиной недобитых врагов оставлять... - MDenis(07.03.2006 16:37, )
- Вы наверное никогда не писали крупных проектов. Вылизывание _работающей_, но не "красивой" мелочи приводит к увеличению времени разработки до перевернутой 8, зато можно гордиться тем, Romario(168 знак., 07.03.2006 16:54, )
- Тут ещё бабуля на двое сказала ! miv(303 знак., 07.03.2006 18:00, )
- кто хотел, тот понял про частоту вызовов, критичность выполнения и прочее. - Romario(07.03.2006 18:08, )
- Да всё понятно ! Прегибы везде не здорого ! - miv(07.03.2006 18:20, )
- Пардонте ! Ну совсем устал ! Перегибы везде не здорово ! =)))) - miv(07.03.2006 18:21, )
- Да всё понятно ! Прегибы везде не здорого ! - miv(07.03.2006 18:20, )
- кто хотел, тот понял про частоту вызовов, критичность выполнения и прочее. - Romario(07.03.2006 18:08, )
- +1 - bialix(07.03.2006 17:21, )
- На мой взгляд - сами по себе те слова очень правильные, но как оправдание "по быстрячку goto напихать" - нет. - ReAl(07.03.2006 18:09, )
- Что за "+1" ? - MDenis(07.03.2006 17:30, )
- Ответ: bialix(77 знак., 07.03.2006 17:34, )
- Жжош, аццкий сотона! :)) - AVR(08.03.2006 14:16, )
- выпей йоду - bialix(08.03.2006 15:03, )
- Жжош, аццкий сотона! :)) - AVR(08.03.2006 14:16, )
- Ответ: bialix(77 знак., 07.03.2006 17:34, )
- Тут ещё бабуля на двое сказала ! miv(303 знак., 07.03.2006 18:00, )
- Вы наверное никогда не писали крупных проектов. Вылизывание _работающей_, но не "красивой" мелочи приводит к увеличению времени разработки до перевернутой 8, зато можно гордиться тем, Romario(168 знак., 07.03.2006 16:54, )
- Чем продседура мельче - тем проще ее "вылизать". А уж коль с мелкой не получается нефиг за крупные браться.. Нельзя за спиной недобитых врагов оставлять... - MDenis(07.03.2006 16:37, )
- это уже религиозное... иногда, чтобы написать алгоритм "чисто" нужно потратить больше времени на кодирование и в результате получить менее оптимальный код. bialix(158 знак., 07.03.2006 16:40, )
- Ещё раз - на мой взгляд, если быстро не сочиняется нужная структура - значит недообдумана ЛОГИКА РАБОТЫ программы (на фазе "до кодирования"), и она работать будет ПЛОХО. - ReAl(07.03.2006 15:46, )
- задача профессионала зарабатывать себе на жизнь, а не мусолить строки в коде доводя его до идеала ((с) с некоторыми поправками:) Romario(125 знак., 07.03.2006 15:35, )
- НЕ.. Так нельзя... Так в MS работают. Нельзя написать хреново кусок что б "потом когда-нибудь" его привести в порядок. MDenis(393 знак., 07.03.2006 15:15, )
- Ответ: Romario(133 знак., 07.03.2006 15:07, )
- А вот это, IMHO, рецидивы ассемблера. ReAl(154 знак., 07.03.2006 14:55, )
- Где-то так. ReAl(1532 знак., 07.03.2006 14:52, )
- Короче я понял. Если без goto или brake совсем уж невмоготу, то можно. А если просто от лени - тогда иди на Васике пиши... MDenis(56 знак., 07.03.2006 14:19, )
- Все хорошо в меру. И дурной тон получается, когда что-то не в меру: Bill(77 знак., 06.03.2006 23:50, )