Warnung C6314
Falsche Reihenfolge von Vorgängen: bitweise oder hat eine höhere Priorität als der Operator für bedingten Ausdruck. Verdeutlichen Sie Ihre Absicht mit Klammern.
Hinweise
Diese Meldung gibt an, dass ein Ausdruck, der einen bitweisen Operator (|
) enthält, im getesteten Ausdruck eines bedingten Vorgangs (?:
) erkannt wurde.
Der bedingte Operator hat eine niedrigere Priorität als bitweise Operatoren. Wenn der getestete Ausdruck den Bitweise- oder Operator enthalten soll, sollten Klammern um den bedingten Ausdruck herum hinzugefügt werden.
Codeanalysename: BITORVSQUESTION
Beispiel
Der folgende Code generiert diese Warnung:
int SystemState();
int f(int SignalValue)
{
return SystemState() | (SignalValue != 0) ? 1 : 0;
}
So korrigieren Sie die Warnung unter Verwendung des folgenden Codes
int SystemState();
int f(int SignalValue)
{
return SystemState() | ((SignalValue != 0) ? 1 : 0);
}