C6259
Aktualisiert: November 2007
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;
}
}