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);
}