Compartilhar via


C6287

Aviso C6287: código redundante: os subexpressões esquerdas e direita são idênticos

Este aviso indica que um elemento redundante foi detectado em uma expressão.

É difícil avaliar a gravidade deste problema sem examinar o código. Um teste duplicado por conta própria é inofensivo, mas as conseqüências de excluir o segundo teste podem ser graves. O código deve ser inspecionado para garantir que um teste não foi omitido.

Exemplo

O código a seguir gera este aviso:

void f(int x)
{
  if ((x == 1) && (x == 1)) 
  {
    //logic 
  }
  if ((x != 1) || (x != 1))
  {
    //logic
  }
}

O código a seguir mostra vários métodos para corrigir este aviso:

void f(int x, int y)
{
  /* Remove the redundant sub-expression: */
  if (x == 1) 
  {
     // logic 
  }
  if (x != 1) 
  {
    // logic
  }
  /* or test the missing variable: */
  if ((x == 1) && (y == 1))
  {
     // logic
  }
  if ((x != 1) || (y != 1))
  {
     // logic
  }
}