C6316
Ostrzeżenie C6316: nieprawidłowy operator: wyrażenie badane jest stała i od zera.Użyj bitowe- oraz w celu ustalenia, czy bity są ustawione.
To ostrzeżenie wskazuje użycie bitowe- lub ()|) gdy operatory- i (&) powinny używane.Bitowe- lub dodaje bitów wyrażenie będące wynikiem, należy operatory- i wybiera tylko bity wspólnych między jego dwóch operatorów.Testuje dla flagi musi być przeprowadzone przy bitowe-i test równości.
Przykład
Poniższy kod generuje ostrzeżenie to:
#define INPUT_VALUE 2
void f( int Flags)
{
if (Flags | INPUT_VALUE) // warning
{
// code
}
}
Aby poprawić to ostrzeżenie, należy użyć następującego kodu:
#define ALLOWED 1
#define INPUT_VALUE 2
void f( int Flags)
{
if ((Flags & INPUT_VALUE) == ALLOWED)
{
// code
}
}