Condividi tramite


C6314

Aggiornamento: novembre 2007

C6314

avviso C6314: Ordine errato delle operazioni: l'operatore OR bit per bit ha maggiore precedenza dell'operatore di espressione condizionale. Aggiungere delle parentesi per chiarire lo scopo

Il messaggio indica che un'espressione contenente un operatore OR bit per bit (|) è stato rilevato nell'espressione sottoposta a test di un'operazione condizionale (?:).

L'operatore condizionale ha una precedenza minore rispetto agli operatori OR bit per bit. Qualora l'espressione sottoposta a test dovesse contenere l'operatore OR bit per bit, l'espressione condizionale dovrà essere racchiusa tra parentesi.

Esempio

Il codice seguente genera questo avviso:

int SystemState();

int f(int SignalValue)
{
  return SystemState() | (SignalValue != 0) ? 1 : 0;
}

Per risolvere il problema, utilizzare il codice seguente:

int SystemState();

int f(int SignalValue)
{
  return SystemState() | ((SignalValue != 0) ? 1 : 0);
} 

Vedere anche

Riferimenti

Bitwise Inclusive OR Operator: |

Conditional Operator: ? :