Freigeben über


C6259

Warnung C6259: Der bezeichnete Code ist nicht erreichbar: (<Ausdruck> & < Konstante >) in einem switch-Ausdruck kann nicht zu <case-Bezeichnung> ausgewertet werden.

Diese Warnung deutet auf einen nicht erreichbaren Code hin. Die Ursache hierfür ist das Ergebnis eines bitweisen AND-Vergleichs (&) in einem switch-Ausdruck. Nur die case-Anweisung, die der Konstanten im switch-Ausdruck entspricht, ist erreichbar; alle anderen case-Anweisungen sind nicht erreichbar.

Beispiel

Im folgenden Beispielcode wird diese Warnung generiert, weil der Ausdruck switch (rand() & 3) nicht die case-Bezeichnung (case 4) ergeben kann:

#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 überprüfen, ob die in der case-Anweisung verwendete Konstante korrekt ist. Im folgenden Code wird die nicht erreichbare case-Anweisung entfernt:

#include <stdlib.h>

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

Siehe auch

Referenz

switch Statement (C++)

switch Statement (C)