Compartilhar via


C6313

Aviso C6313: Operador incorreto: Zero - valiosos sinalizar não pode ser testados com o bit a bit - e.Use um teste de igualdade para verificar se há sinalizadores com valor zero

Este aviso indica que um valor constante de zero foi fornecido sistema autônomo um argumento para o bit a bit- e (&) operador em um contexto de teste. A expressão resultante é constante e é avaliado como false; o resultado é diferente da pretendida.

Isso geralmente é causado por meio de bit a bit- e para testar um sinalizar que possui o valor zero.Para testar sinalizadores com valor zero, um teste de igualdade deve ser executado, por exemplo, usando == ou !=.

Exemplo

O código a seguir gera este aviso:

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

Para corrigir esse aviso, use o seguinte código:

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}