Edit

Share via


Warning C6281

Incorrect order of operations: relational operators have higher precedence than bitwise operators

Remarks

This warning indicates a possible error in the operator precedence, which might produce incorrect results. You should check the precedence and use parentheses to clarify the intent. Relational operators (<, >, <=, >=, ==, !=) have higher precedence than bitwise operators (&, |, ^).

Code analysis name: BITWISERELATIONPRECEDENCEERROR

Example

The following code generates this warning:

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

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

The following code uses parentheses to correct this warning:

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

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

See also

Compiler Warning (level 3) C4554