C6281
Advertencia 6281: Orden incorrecto de operaciones: los operadores relacionales tienen mayor prioridad que los operadores bit a bit
Esta advertencia indica un posible error en la prioridad de los operadores.Esto podría generar resultados incorrectos.Debe comprobar la prioridad y el uso de los paréntesis para clarificar la intención.Los operadores relacionales (<, >, < =, > =, ==! =) tienen una prioridad más alta que los operadores bit a bit (& | ^).
Ejemplo
El código siguiente genera esta advertencia:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if (FORMAT & TYPE != input)
{
// code...
}
}
El código siguiente utiliza paréntesis para corregir esta advertencia:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if ((FORMAT & TYPE) != input)
{
// code...
}
}