C6281
Avviso 6281: ordine errato delle operazioni: gli operatori relazionali hanno precedenza maggiore degli operatori bit per bit
L'avviso indica un possibile errore nella precedenza degli operatori,che potrebbe produrre risultati non corretti.Per chiarire lo scopo, è necessario controllare la precedenza e utilizzare le parentesi.Gli operatori relazionali (<, >, <=, >=, ==, != ) hanno una precedenza più alta rispetto agli operatori bit per bit (& | ^).
Esempio
Il codice seguente genera questo avviso:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if (FORMAT & TYPE != input)
{
// code...
}
}
Per risolvere il problema, nel codice seguente vengono utilizzate le parentesi:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if ((FORMAT & TYPE) != input)
{
// code...
}
}