Udostępnij za pośrednictwem


C6281

Ostrzeżenie 6281 - nieprawidłowa kolejność operacji: operatory relacyjne mają wyższy priorytet niż operatory bitowe

To ostrzeżenie wskazuje możliwy błąd pierwszeństwa operatorów.Może to spowodować uzyskanie niepoprawnych wyników.Należy sprawdzić pierwszeństwo i używać nawiasów w celu wyjaśnienia intencji.Operatory relacyjne (<, >, <=, >=, ==, !=) mają wyższy priorytet od operatorów (& | ^).

Przykład

Poniższy kod generuje to ostrzeżenie:

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

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

W poniższym kodzie użyto nawiasów do naprawienia tego ostrzeżenia:

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

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

Zobacz też

Informacje

Kompilator ostrzeżenia (poziom 3) C4554