Condividi tramite


Avviso C6281

Ordine errato delle operazioni: gli operatori relazionali hanno una precedenza maggiore rispetto agli operatori bit per bit

Osservazioni:

Questo avviso indica un possibile errore nella precedenza dell'operatore, che potrebbe produrre risultati non corretti. È necessario controllare la precedenza e usare le parentesi per chiarire la finalità. Gli operatori relazionali (<, >, <=>=, ==) !=hanno una precedenza maggiore rispetto agli operatori bit per bit (&, |, ^).

Nome dell'analisi del codice: BITWISERELATIONPRECEDENCEERROR

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...
  }
}

Il codice seguente usa le parentesi per correggere questo avviso:

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

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

Vedi anche

Avviso del compilatore (livello 3) C4554