Freigeben über


Warnung C6289

Falscher Operator: Der gegenseitige Ausschluss || ist immer eine Konstante ungleich Null. Haben Sie stattdessen beabsichtigt, sie zu verwenden && ?

Hinweise

Diese Warnung weist darauf hin, dass in einem Testausdruck eine Variable als ungleich zwei verschiedene Konstanten getestet wird. Das Ergebnis hängt davon ab, dass beide Bedingungen wahr sind, aber immer als wahr ausgewertet werden.

Dieses Problem wird häufig durch die Verwendung || anstelle von &&, aber auch durch die Verwendung != , wo == beabsichtigt, verursacht werden.

Codeanalysename: MUTUALEXCLUSIONOVERORISTRUE

Beispiel

Der folgende Code generiert diese Warnung:

void f(int x)
{
  if ((x != 1) || (x != 3))
  {
    // code
  }
}

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

void f(int x)
{
  if ((x != 1) && (x != 3))
  {
    // code
  }
}

/* or */
void f(int x)
{
  if ((x == 1) || (x == 3))
  {
    // code
  }
}