약간의 오타를 통해 실수 로이 구성을 찾았습니다.
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
문이 완전히 도달도 유효하지만입니다.
도달 할 수없는 코드에 대한 경고조차없이 깨끗한 컴파일을 얻었지만 이것은 의미가없는 것 같습니다.
컴파일러가이 코드를 도달 할 수없는 코드로 표시해야합니까?
이것이 어떤 목적에도 도움이됩니까?
goto
도달 할 수없는 부분에 출입 할 수 있으며, 다양한 해킹에 유용 할 수 있습니다.
switch
있는 조건부 goto
입니다. goto 레이블로 채워진 규칙적인 코드 블록에서와 마찬가지로 본문에 거의 동일한 제한이 있습니다.
-Wswitch-unreachable