Freigeben über


Warnung C6259

Beschrifteter Code ist nicht erreichbar: ('Ausdruck' & 'Konstante') im Switch-Ausdruck kann nicht in 'case-label' ausgewertet werden.

Hinweise

Diese Warnung weist auf nicht erreichbaren Code hin, der durch das Ergebnis eines bitweisen UND (&) Vergleichs in einem Switchausdruck verursacht wird. Nur die Case-Anweisung, die der Konstante im Switchausdruck entspricht, ist erreichbar; Alle anderen Fallanweisungen sind nicht erreichbar.

Codeanalysename: DEADCODEINBITORLIMITEDSWITCH

Beispiel

Der folgende Beispielcode generiert diese Warnung, da der Ausdruck (rand() & 3) "switch" nicht als Fallbezeichnung ausgewertet werden kann (case 4):

#include <stdlib.h>

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

Um diese Warnung zu korrigieren, entfernen Sie den nicht erreichbaren Code, oder stellen Sie sicher, dass die in der Case-Anweisung verwendete Konstante korrekt ist. Der folgende Code entfernt die nicht erreichbare Case-Anweisung:

#include <stdlib.h>

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

Siehe auch