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
}
}