Condividi tramite


Avviso C6259

Il codice etichettato non è raggiungibile: ('expression' & 'constant') in switch-expr non può restituire 'case-label'

Osservazioni:

Questo avviso indica un codice non raggiungibile causato dal risultato di un confronto AND bit per bit (&) in un'espressione switch. È raggiungibile solo l'istruzione case che corrisponde alla costante nell'espressione switch; tutte le altre istruzioni case non sono raggiungibili.

Nome dell'analisi del codice: DEADCODEINBITORLIMITEDSWITCH

Esempio

Il codice di esempio seguente genera questo avviso perché l'espressione (rand() & 3) 'switch' non può 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 correggere questo avviso, rimuovere il codice non raggiungibile o verificare che la costante usata nell'istruzione case sia corretta. Il codice seguente rimuove l'istruzione case non raggiungibile:

#include <stdlib.h>

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

Vedi anche