Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Operatore errato: l'espressione testata è costante e non zero. Usare bit per bit e per determinare se i bit sono impostati
Osservazioni:
Questo avviso indica l'uso di bit per bit o (|) quando deve essere stato usato bit per bit e (&). Bit per bit o aggiunge bit all'espressione risultante, mentre bit per bit seleziona solo i bit in comune tra i due operatori. I test per i flag devono essere eseguiti con bit per bit e o con un test di uguaglianza.
Nome dell'analisi del codice: INAPPROPRIATEUSEOFBITOR
Esempio
Il codice seguente genera questo avviso:
#define INPUT_VALUE 2
void f( int Flags)
{
if (Flags | INPUT_VALUE) // warning
{
// code
}
}
Per correggere questo avviso, usare il codice seguente:
#define ALLOWED 1
#define INPUT_VALUE 2
void f( int Flags)
{
if ((Flags & INPUT_VALUE) == ALLOWED)
{
// code
}
}