C6314

Mise à jour : novembre 2007

C6314

avertissement C6314 : Ordre des opérations incorrect : l'opérateur de bits OR a une priorité plus élevée que l'opérateur d'expression conditionnelle. Ajoutez des parenthèses pour préciser clairement le but recherché.

Ce message indique qu'une expression qui contient un opérateur de bits OR (|) a été détectée dans l'expression testée d'une opération conditionnelle (?:).

L'opérateur conditionnel a une priorité inférieure à celle des opérateurs de bits. Si l'expression testée doit contenir l'opérateur de bits OR, les parenthèses doivent être ajoutées autour de l'expression conditionnelle.

Exemple

Le code suivant génère cet avertissement :

int SystemState();

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

Pour corriger cet avertissement, utilisez le code suivant :

int SystemState();

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

Voir aussi

Référence

Bitwise Inclusive OR Operator: |

Conditional Operator: ? :