C6299
Aviso C6299: explicitamente comparar um campo de bit para um tipo Boolean produzirá resultados inesperados
Este aviso indica uma pressuposição incorreta booleanos e campos de bits são equivalentes.Atribuindo 1 para campos de bits colocará 1 no seu único bit; No entanto, qualquer comparação deste campo de bit 1 inclui uma conversão implícita do campo bit para um int. assinadoEssa conversão converterá o armazenado 1 -1 e a comparação pode produzir resultados inesperados.
Exemplo
O código a seguir gera este aviso:
struct myBits
{
short flag : 1;
short done : 1;
//other members
} bitType;
void f( )
{
if (bitType.flag == 1)
{
// code...
}
}
Para corrigir esse aviso, use um campo de bits, como mostrado no código a seguir:
void f ()
{
if(bitType.flag==bitType.done)
{
// code...
}
}