Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use "bit a bit y" para comprobar si se establece una marca
Comentarios
La mayoría de los tipos enum con potencia de dos valores de miembro están pensados para usarse como marcas de bits. Como resultado, rara vez le interesará comprobar estas marcas para ver si son iguales. En su lugar, extraerá los bits que le interesan mediante operaciones bit a bit.
Nombre de análisis de código: USE_BITWISE_AND_TO_CHEK_ENUM_FLAGS
Ejemplo
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;
}
Para corregir la advertencia, use operaciones bit a bit:
void useEqualsWithBitwiseEnum(BitWise a)
{
if (a & B) // Fixed.
return;
}