Sdílet prostřednictvím


C6289

upozornění C6289: Nesprávný operátor: vzájemné vyloučení přes || je vždy nenulová konstanta.Měli jste místo toho v úmyslu použít &&?

Toto upozornění znamená, že je v testovacím výrazu testována proměnná oproti dvěma konstantám a výsledek závisí na tom, zda je jedna z podmínek pravdiváVždy vyhodnoceno jako TRUE.

Tento problém je obvykle způsoben použitím operátoru || namísto &&, může být také však způsoben operátorem != tam, kde byl zamýšlen operátor ==.

Příklad

Následující kód generuje toto upozornění:

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

Pro opravu tohoto upozornění použijte následující kód:

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

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