Compartilhar via


C6289

Aviso C6289: Operador incorreto: a exclusão mútua sobre | | é sempre uma constante diferente de zero. Você pretendia usar & & em vez disso?

Este aviso indica que uma variável em uma expressão de teste está sendo testada contra duas constantes diferentes e o resultado depende de uma ou outra condição seja verdadeira. Isso sempre retornará true.

Geralmente, esse problema é causado por meio de || no lugar de &&, mas também podem ser causados por meio de != onde == era pretendida.

Exemplo

O código a seguir gera este aviso:

void f(int x)
{
  if ((x != 1) || (x != 3))
  {
    // code 
  }
}

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

void f(int x)
{
  if ((x != 1) && (x != 3))
  {
    // code 
  }
}

/* or */
void f(int x)
{
  if ((x == 1) || (x == 3))
  {
    // code 
  }
}