Avviso C6288
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.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per