Condividi tramite


C6259

Aggiornamento: novembre 2007

C6259

avviso C6259: il codice con etichetta non è eseguibile: (<espressione> & <costante>) in una espressione switch non in grado di restituire <etichetta-case>

L'avviso indica codice non eseguibile determinato dal risultato di un confronto AND bit per bit (&) in un'espressione switch. Solo l'istruzione case che corrisponde alla costante nell'espressione switch è eseguibile. Tutte le altre istruzioni case non lo sono.

Esempio

Nell'esempio di codice riportato di seguito viene generato questo avviso in quanto l'espressione switch(rand() & 3) non è in grado di restituire l'etichetta case (case 4):

#include <stdlib.h>

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

Per risolvere il problema, rimuovere il codice non eseguibile oppure verificare che la costante utilizzata nell'istruzione case sia corretta. Il codice seguente rimuove l'istruzione case non eseguibile:

#include <stdlib.h>

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

Vedere anche

Riferimenti

The switch Statement

The C switch Statement