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.
Usare "bit per bit" e per verificare se è impostato un flag
Osservazioni:
La maggior parte dei enum tipi con potenza di due valori membro deve essere usata come flag di bit. Di conseguenza, raramente si vuole confrontare questi flag per verificarne l'uguaglianza. Estrarre invece i bit a cui si è interessati usando operazioni bit per bit.
Nome dell'analisi del codice: USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS
Esempio
enum BitWise
{
A = 1,
B = 2,
C = 4
};
void useEqualsWithBitwiseEnum(BitWise a)
{
if (a == B) // Warning C26813: Use 'bitwise and' to check if a flag is set
return;
}
Per correggere l'avviso, usare operazioni bit per bit:
void useEqualsWithBitwiseEnum(BitWise a)
{
if (a & B) // Fixed.
return;
}