Share via


Advertencia C26813

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 del 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;
}

Consulte también

C26827
C26828