Partager via


C6259

avertissement C6259 : impossible d'atteindre le code étiqueté : (<expression> & <constante>) dans un switch-expr ne peut pas prendre la valeur <ÉtiquetteCase>

Cet avertissement indique un code inaccessible provoqué par le résultat d'une comparaison d'opérations de bits AND (&) dans une expression de switch.Seule l'instruction case correspondant à la constante dans l'expression de switch est accessible ; toutes les autres instructions case ne le sont pas.

Exemple

L'exemple de code suivant génère cet avertissement car l'expression switch(rand() & 3) ne peut pas correspondre à l'étiquette case (case 4):

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        case 4:
            /* Not reachable */
            break;
        default:
            break;
    }
}

Pour corriger cet avertissement, supprimez le code inaccessible ou vérifiez que la constante utilisée dans l'instruction case est correcte.Le code suivant supprime l'instruction case inaccessible :

#include <stdlib.h>

void f()
{
     switch (rand () & 3) {
        case 3:
            /* Reachable */
            break;
        default:
            break;
    }
}

Voir aussi

Référence

instruction switch (C++)

instruction switch (c)