Freigeben über


C6313

C6313

Warnung C6313: Falscher Operator: Ein Flag mit dem Wert 0 (null) kann nicht mit dem bitweisen AND-Operator getestet werden. Verwenden Sie einen Übereinstimmungstest, um eine Überprüfung auf Flags mit dem Wert 0 durchzuführen.

Diese Warnung weist darauf hin, dass in einem Testkontext ein konstanter Wert von 0 (null) als Argument für den bitweise AND-Operator (&) angegeben wurde. Der sich daraus ergebende Ausdruck ist konstant und wird zum Ergebnis false ausgewertet; das Ergebnis ist anders als beabsichtigt.

Dies wird i. d. R. bei Verwendung eines bitweisen AND-Operators zum Testen eines Flags mit dem Wert 0 (null) verursacht. Um Flags mit dem Wert 0 (null) zu testen, muss ein Übereinstimmungstest ausgeführt werden, z. B. mit == oder !=.

Beispiel

Der folgende Code generiert diese Warnung:

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}