[ZX]
- 
	
- Эту энергию надо применять в мирных целях -> SciFi(20.02.2013 11:26 - 11:40, ссылка, ссылка)
 - "А вы, собственно, почему интересуетесь? Вы не из милиции, случайно?"(c) Скобки и тупые (но, блять, не зависящие от прихотей компиляторостроителей ) конструкции типа *cnt=*cnt+1 нихто не отменял... - Гудвин(19.02.2013 20:43)
 - После switch должно быть { Не скомпилируется - AlexBi(19.02.2013 17:36)
			
- В данном случае { не нужна. С точки зрения стандарта код корректен. Правда, учитывая то, что в стандарте не оговорено, допускается ли case во вложенных блоках, некоторые компиляторы могут ругнуться "case without switch" - testerplus(19.02.2013 18:10 - 18:16)
					
- Упс... MS VisualC++ проигнорировал if(0). Т.е. не то, что даже не выкинул код в нем, а тупо его исполнил.  testerplus(399 знак., 19.02.2013 18:13)
							
- не тупо, а как написано. переход по switch выполнил. - Vit(19.02.2013 18:38)
 - Нифига! case работает, как метка, на которую ПЕРЕСКАКИВАЕТ switch. В принципе писать что-то внутри тела switch в этом месте неположено, т.к. нет такого значения x, при котором эта шапка исполнялась бы. - Ксения(19.02.2013 18:38)
									
- Стандарту не противоречит  Codavr(108 знак., 19.02.2013 20:31)
											
- Пардон сомнения закрались. Надо стандарт рыть а не инетовые интерпретации. - Codavr(19.02.2013 20:38)
													
- Посмотрел стандарт. Все законно. Codavr(272 знак., 20.02.2013 22:30, ссылка)
 
 
 - Пардон сомнения закрались. Надо стандарт рыть а не инетовые интерпретации. - Codavr(19.02.2013 20:38)
													
 - Он не сразу перескакивает, он сначала должен выполнить все то, что написано до case'ов (C99: 6.8.4.2 стих 7). Вопрос fk0 был в том, как компилятором будут рассматриваться метки, заблокированные if'ом - testerplus(19.02.2013 20:11)
											
- Хренушки. Вычислили то что в свиче и сразу на вычисленую метку. Все остальное идет лесом. - Codavr(19.02.2013 20:33)
													
- Да, согласен. Невнимательно прочитал текст под примером из стандарта. Действительно переход делается сразу. - testerplus(19.02.2013 20:34)
 
 - Наоборот не должен. Но там можно что-то декларировать. - fk0(19.02.2013 20:27)
 
 - Хренушки. Вычислили то что в свиче и сразу на вычисленую метку. Все остальное идет лесом. - Codavr(19.02.2013 20:33)
													
 
 - Стандарту не противоречит  Codavr(108 знак., 19.02.2013 20:31)
											
 
 
 - Упс... MS VisualC++ проигнорировал if(0). Т.е. не то, что даже не выкинул код в нем, а тупо его исполнил.  testerplus(399 знак., 19.02.2013 18:13)
							
 - Я потому и спрашиваю, что компилируется и даже работает... Смотрел стандарт. После switch должен быть оператор или блок {}. Получается первое. Смущает, что switch получается -- это такой ненормальный способ сделать goto куда попало... - fk0(19.02.2013 18:11)
					
- Почему куда попало. Он вычисляет значение и делает переход на вычисленую метку. Все законно правда операторы if и else недостижимы. Должны быть варнинги про них. Вот эквивалент Codavr(121 знак., 19.02.2013 20:23 - 20:28)
 
 
 - В данном случае { не нужна. С точки зрения стандарта код корректен. Правда, учитывая то, что в стандарте не оговорено, допускается ли case во вложенных блоках, некоторые компиляторы могут ругнуться "case without switch" - testerplus(19.02.2013 18:10 - 18:16)