À 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 printf
haut de la switch
dé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?
goto
entrer et sortir de la partie autrement inaccessible, qui peut être utile pour divers hacks.
switch
c'est juste un conditionnel goto
avec 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