• [^] # Re: goto ?

    Posté par . En réponse à la dépêche Sortie de GCC 4.5. Évalué à 2.

    Je m'étais amusé a faire l'équivalent sans goto. Ca donne un truc horrible comme :


    int ret = 0;
    enum {
    DING_OK,
    DING_ERR1,
    DING_ERR2,
    } ding = DING_OK;

    if (ding == DING_OK) {
    if (do_step_1 () == FALSE) {
    ding = DING_ERR1;
    ret = 1;
    }
    }

    if (ding == DING_OK) {
    if (do_step_2 () == FALSE) {
    ding = DING_ERR2;
    ret = 2;
    }
    }

    switch(ding) {
    case DING_ERR2:
    undo_step_2 ();
    case DING_ERR1:
    undo_step_1();
    case DING_OK:
    }
    return ret;


    PS : ding is not a goto