Freigeben über


C6314

Warnung C6314: Falsche Operationsreihenfolge: Der bitweise Operator OR hat Vorrang vor dem bedingten Ausdrucksoperator. Verdeutlichen Sie Ihre Absicht mit Klammern.

Diese Meldung gibt an, dass ein Ausdruck, der einen bitweisen OR-Operator enthält (|) im getesteten Ausdruck einer bedingten Operation (?:) erkannt wurde.

Bitweise Operatoren haben Vorrang vor dem bedingten Operator. Wenn der getestete Ausdruck den bitweisen Operator OR enthalten soll, schließen die den bedingten Ausdruck in Klammern ein.

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

Siehe auch

Referenz

Bitwise Inclusive OR Operator: |

Conditional Operator: ? :