Participer au site avec un Tip
Rechercher
 

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 :

Instruction goto

L'instruction continue


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.

Exemple de code

#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;
}

Sujets connexes

if
switch
for
while
do / while
break
continue


L'instruction continue