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'inclusione reciproca su && è sempre zero. L'utente intende usare || invece?
Osservazioni:
Questo avviso indica che in un'espressione di test viene testata una variabile su due costanti diverse. Il risultato dipende da entrambe le condizioni che sono vere, che è impossibile. Il codice in questi casi indica che la finalità del programmatore non viene acquisita correttamente. È importante esaminare il codice e correggere il problema. In caso contrario, il codice non si comporterà nel modo previsto.
Questo problema è spesso causato dall'uso &&di , al posto di ||, ma può anche essere causato dall'uso di == dove != è stato previsto.
Nome dell'analisi del codice: MUTUALINCLUSIONOVERANDISFALSE
Esempio
Il codice seguente genera questo avviso:
void f(int x)
{
if ((x == 1) && (x == 2)) // warning
{
// code ...
}
}
Per correggere questo avviso, usare il codice seguente:
void f(int x)
{
if ((x == 1) || (x == 2))
{
// logic
}
/* or */
if ((x != 1) && (x != 2))
{
// code ...
}
}
Lo strumento di analisi non avvisa se l'espressione ha effetti collaterali.