Sdílet prostřednictvím


C6316

upozornění C6316: nesprávná operátor: testované výraz je konstantní a nulová.Použití bitové- a zjistit, zda jsou nastaveny bity

Toto upozornění znamená použití bitového- nebo ()|) při bitového- a (&) by byly použity.Bitový operátor- nebo přidá do výsledný výraz bitů, že bitového- a vybere pouze bitů mezi jeho dva operátory.Testy pro příznaky musí provádět s bitové-a nebo test rovnosti.

Příklad

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

#define INPUT_VALUE 2
void f( int Flags)
{
  if (Flags | INPUT_VALUE) // warning
  {
    // code
  }
}

Chcete-li opravit toto upozornění, použijte následující kód:

#define ALLOWED 1
#define INPUT_VALUE 2

void f( int Flags)
{
  if ((Flags & INPUT_VALUE) == ALLOWED)
  {
    // code
  }
}