Küçük bir yazım hatasıyla, bu yapıyı yanlışlıkla buldum:
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;
}
İfadenin printfüst kısmındaki switchgeçerli, ama aynı zamanda tamamen ulaşılamaz görünüyor.
Ulaşılamayan kod hakkında bile bir uyarı yapmadan temiz bir derleme aldım, ama bu anlamsız görünüyor.
Bir derleyici bunu erişilemez kod olarak işaretlemeli mi?
Bu herhangi bir amaca hizmet ediyor mu?
gotoulaşılamayan bölüme girip çıkabilirsiniz, bu da çeşitli kesmek için yararlı olabilir.
switch, sadece gotobirden fazla etikete sahip bir şarttır . Gövdesi üzerinde, goto etiketleriyle dolu normal bir kod bloğunda olduğu gibi az çok aynı kısıtlamalar vardır.
-Wswitch-unreachable