Freigeben über


Warnung C6281

Falsche Reihenfolge der Vorgänge: relationale Operatoren haben eine höhere Priorität als bitweise Operatoren.

Hinweise

Diese Warnung gibt einen möglichen Fehler in der Rangfolge des Operators an, was zu falschen Ergebnissen führen kann. Sie sollten die Rangfolge überprüfen und Klammern verwenden, um die Absicht zu verdeutlichen. Relationale Operatoren (, , , , , ) haben eine höhere Priorität als bitweise Operatoren (&, |, ^). ==!=>=<=><

Codeanalysename: BITWISERELATIONPRECEDENCEERROR

Beispiel

Der folgende Code generiert diese Warnung:

#include <stdlib.h>
#define FORMAT 1
#define TYPE 2

void f(int input)
{
  if (FORMAT & TYPE != input)
  {
    // code...
  }
}

Der folgende Code verwendet Klammern, um diese Warnung zu korrigieren:

#include <stdlib.h>
#define FORMAT 1
#define TYPE 2

void f(int input)
{
  if ((FORMAT & TYPE) != input)
  {
    // code...
  }
}

Siehe auch

Compilerwarnung (Ebene 3) C4554