Condividi tramite


Avviso C6314

Ordine di operazioni non corretto: bit per bit o ha una precedenza superiore rispetto all'operatore di espressione condizionale. Aggiungere parentesi per chiarire la finalità

Osservazioni:

Questo messaggio indica che è stata rilevata un'espressione che contiene un operatore bit per bit (|) nell'espressione testata di un'operazione condizionale (?:).

L'operatore condizionale ha una precedenza inferiore rispetto agli operatori bit per bit. Se l'espressione testata deve contenere l'operatore bit per bit o , le parentesi devono essere aggiunte intorno all'espressione condizionale.

Nome dell'analisi del codice: BITORVSQUESTION

Esempio

Il codice seguente genera questo avviso:

int SystemState();

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

Per correggere questo avviso, usare il codice seguente:

int SystemState();

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

Vedi anche