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.