Через небольшой опечатка, я случайно нашел эту конструкцию:Действительно ли, но бесполезный синтаксис в корпусе переключателя?
int main(void) {
char foo = 'c';
switch(foo)
{
printf("Cant Touch This\n"); // This line is Unreachable
case 'a': printf("A\n"); break;
case 'b': printf("B\n"); break;
case 'c': printf("C\n"); break;
case 'd': printf("D\n"); break;
}
return 0;
}
Кажется, что printf
в верхней части switch
утверждение справедливо, но и совершенно недостижимым.
Я получил чистую компиляцию, даже не предупредив о недостижимом коде, но это кажется бессмысленным.
Должен ли компилятор обозначить это как недостижимый код?
Действительно ли это служит какой-либо цели?
Разве ваш компилятор уже не предупреждает вас о мертвом коде вообще? –
Возможно, вы не прочитали вопрос: ** ДА ** компилятор должен предупредить о недостижимом коде. ** НЕТ ** этот бит был * NOT * помечен как недостижимый. – abelenky
@ KerrekSB попытался воспроизвести: у моего GCC 5.3.1 нет. –