Condividi tramite


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 è stata individuata un'espressione operatore OR bit per bit (|) nell'espressione testata 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: ? :