Sdílet prostřednictvím


C6288

upozornění C6288: nesprávný operátor: vzájemné zahrnutí přes operátor && je vždy nula.Nezamýšleli jste použít operátor ||?

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 jsou obě podmínky pravdivé.Kód v těchto případech naznačuje, že programátorům záměr není správně zachycen.Je důležité zkontrolovat kód a opravit problém, jinak se kód nemusí chovat dle očekávání.

Tento problém je obvykle způsoben použitím operátoru && namísto ||, může však být také 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 == 2)) // warning
  {
    // code ...
  }
}

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

void f(int x)
{
     if ((x == 1) || (x == 2)) 
     {
          // logic
     }
    
    /* or */
    if ((x != 1) && (x != 2))
    {
        // code ...
    }
}

Nástroj analýzy negeneruje upozornění, pokud má výraz vedlejší účinky.