À travers une petite faute de frappe, j'ai accidentellement trouvé cette construction:
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;
}
Il semble que le printfhaut de la switchdéclaration soit valide, mais aussi complètement inaccessible.
J'ai obtenu une compilation propre, sans même un avertissement sur le code inaccessible, mais cela semble inutile.
Un compilateur doit-il signaler cela comme du code inaccessible?
Est-ce que cela sert à quelque chose que ce soit?
gotoentrer et sortir de la partie autrement inaccessible, qui peut être utile pour divers hacks.
switchc'est juste un conditionnel gotoavec plusieurs étiquettes. Il y a plus ou moins les mêmes restrictions sur son corps que sur un bloc de code normal rempli d'étiquettes goto.
-Wswitch-unreachable