Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nieprawidłowa kolejność operacji: operatory relacyjne mają wyższy priorytet niż operatory bitowe
Uwagi
To ostrzeżenie wskazuje możliwy błąd w pierwszeństwie operatora, co może powodować nieprawidłowe wyniki. Należy sprawdzić pierwszeństwo i użyć nawiasów, aby wyjaśnić intencję. Operatory relacyjne (<, , >=><=, , ==, !=) mają wyższy priorytet niż operatory bitowe (&, |, ^).
Nazwa analizy kodu: BITWISERELATIONPRECEDENCEERROR
Przykład
Następujący kod generuje to ostrzeżenie:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if (FORMAT & TYPE != input)
{
// code...
}
}
Poniższy kod używa nawiasów, aby poprawić to ostrzeżenie:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if ((FORMAT & TYPE) != input)
{
// code...
}
}