Partager via


C6287

avertissement C6287 : code redondant : les sous-expressions gauche et droite sont identiques

Cet avertissement indique qu'un élément redondant a été détecté dans une expression.

Il est difficile d'évaluer la gravité de ce problème sans examiner le code. Un test dupliqué ne présente aucun danger, mais les conséquences de la suppression du deuxième test peuvent être graves. Le code doit être examiné pour vérifier qu'aucun test n'a été omis.

Exemple

Le code suivant génère cet avertissement :

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

Le code suivant présente diverses méthodes permettant de corriger cet avertissement :

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