Tag: 语言的律师

有效的,但没有价值的语法在开关柜?

通过一个小小的错字,我意外地发现了这个结构: 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; } 看来switch语句顶部的printf是有效的,但也是完全无法访问的。 我得到了一个干净的编译,甚至没有关于无法访问的代码的警告,但这似乎毫无意义。 一个编译器应该将这个标记为不可达代码? 这是否有任何用途?