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 switch
geç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?
goto
ulaşılamayan bölüme girip çıkabilirsiniz, bu da çeşitli kesmek için yararlı olabilir.
switch
, sadece goto
birden 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