Avviso C6285
('costante non zero' || 'costante non zero') è sempre una costante non zero. Si intende usare l'operatore bit per bit e ?
Questo avviso indica che due valori costanti, entrambi maggiori di uno, sono stati rilevati come argomenti per un'operazione o logica che si verifica in un contesto di test. Questa espressione è sempre TRUE.
Osservazioni:
I valori costanti maggiori di uno suggeriscono che gli argomenti per i campi logici o possono essere di bit. Valutare se in un caso come questo potrebbe essere più appropriato un operatore bit per bit.
Nome dell'analisi del codice: LOGICALOROFCONSTANTS
Esempio
Il codice seguente genera questo avviso:
#include <stdio.h>
#define TESTED_VALUE 0x37
#define MASK 0xaa
void f()
{
if (TESTED_VALUE || MASK)
{
puts("(TESTED_VALUE || MASK) True");
// code ...
}
else
{
puts("(TESTED_VALUE || MASK) False");
// code ...
}
}
Per correggere questo avviso, usare il codice seguente:
#include <stdio.h>
#define TESTED_VALUE 0x37
#define MASK 0xaa
void f(int flag)
{
if ((TESTED_VALUE & MASK)== flag)
{
puts("true");
// code ...
}
else
{
puts("false");
// code ...
}
}
Vedi anche
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