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;
}
}