goto etiq;
L'instruction goto permet de réaliser ce qu'on appelle un débranchement. Un débranchement permet
de se repositionner sur une autre section de code a exécuter, introduite par une étiquette, au lieu de
poursuivre une exécution séquentielle.
Une étiquette se définie avec un nom suivi d'un caractère :. Normalement, une étiquette est placée en colonne 0 du fichier de texte.
En fait quasiment toutes les instructions C effectuent de débranchement. Pour les autres instructions,
les choses sont contrôlée par le compilateur, mais ce qui n'est pas le cas avec goto.
Effectivement, si l'étiquette de destination n'est pas placée dans le même bloc que l'instruction goto,
alors vous pouvez désynchroniser la pile d'exécution et donc aboutir à un crash de l'application.
C'est pour cette raison qu'il est très fortement conseillé de ne pas utiliser l'instruction goto
au profit des autres instructions.
#include <stdio.h> #include <stdlib.h> int main( int argc, char * argv[] ) { int counter = 0; argc--; argv++; if ( argc == 0 ) { printf( "Usage: commandName argument...\n" ); exit( 0 ); } loopBegin: if ( counter == argc ) goto loopEnd; printf( "Handle argument %s\n", argv[counter] ); counter++; goto loopBegin; loopEnd: // . . . return 0; }
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :