- 
	
- Короче я понял. Если без 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, 
) 
 - внешние скобки и приведение к 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, 
) 
 - Это он ОЧЕНЬ зря. 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, 
) 
 - Пардон! Ошибочка вышла - для исходного подсчёты были не для меги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, 
) 
 - я смотрел 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, 
) 
 - я имел ввиду что "логически" отрабатывается (строится таблица переходов) - 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, 
 
 - Да, "никогда не использовать" - это я понимаю и согласен, но забывать не стоит - иначе скоро выйдет "фортран-программу можно написать на любом языке" - ReAl(08.03.2006 21:09, 
 - хм...хитра конструкция. я такую первый раз вижу:) честно. - 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, 
) 
 - да, пардон. под 32 битником я имел ввиду более ''правильные'' компилеры и более мощную архитектуру проца. и этот код для них ничем не отличается с goto. - Romario(08.03.2006 13:10, 
 
 - Дело не в разрядности...  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, 
) 
 - Не, ниагарсикй водопад - это из анекдота про ушастых туземцев и их вождя с шишкой на лбу. - 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, 
) 
 - нет конечно, макс 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: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, 
) 
 - выпей йоду - bialix(08.03.2006 15:03, 
 
 - Жжош, аццкий сотона! :)) - AVR(08.03.2006 14:16, 
 
 - Ответ:  bialix(77 знак., 07.03.2006 17:34, 
 
 - На мой взгляд - сами по себе те слова очень правильные, но как оправдание "по быстрячку goto напихать" - нет. - ReAl(07.03.2006 18:09, 
 
 - Тут ещё бабуля на двое сказала !  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,