Ostrzeżenie C6281

Nieprawidłowa kolejność operacji: operatory relacyjne mają wyższy priorytet niż operatory bitowe

Uwagi

To ostrzeżenie wskazuje możliwy błąd w pierwszeństwie operatora, co może powodować nieprawidłowe wyniki. Należy sprawdzić pierwszeństwo i użyć nawiasów, aby wyjaśnić intencję. Operatory relacyjne (<, , >=><=, , ==, !=) mają wyższy priorytet niż operatory bitowe (&, |, ^).

Nazwa analizy kodu: BITWISERELATIONPRECEDENCEERROR

Przykład

Następujący kod generuje to ostrzeżenie:

#include <stdlib.h>
#define FORMAT 1
#define TYPE 2

void f(int input)
{
  if (FORMAT & TYPE != input)
  {
    // code...
  }
}

Poniższy kod używa nawiasów, aby poprawić to ostrzeżenie:

#include <stdlib.h>
#define FORMAT 1
#define TYPE 2

void f(int input)
{
  if ((FORMAT & TYPE) != input)
  {
    // code...
  }
}

Zobacz też

Ostrzeżenie kompilatora (poziom 3) C4554