Avviso C6289
Operatore errato: l'esclusione reciproca su
||
è sempre una costante non zero. Hai invece intenzione di usare&&
?
Osservazioni:
Questo avviso indica che in un'espressione di test viene testata una variabile come diversa da due costanti diverse. Il risultato dipende da una condizione vera, ma restituisce sempre true.
Questo problema è spesso causato dall'uso ||
al posto di &&
, ma può anche essere causato dall'uso di !=
dove ==
era previsto.
Nome dell'analisi del codice: MUTUALEXCLUSIONOVERORISTRUE
Esempio
Il codice seguente genera questo avviso:
void f(int x)
{
if ((x != 1) || (x != 3))
{
// code
}
}
Per correggere questo avviso, usare il codice seguente:
void f(int x)
{
if ((x != 1) && (x != 3))
{
// code
}
}
/* or */
void f(int x)
{
if ((x == 1) || (x == 3))
{
// code
}
}
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