Sdílet prostřednictvím


C6287

upozornění C6287: redundantní kód: výraz na levé i pravé straně je shodný

Toto upozornění znamená, že byl ve výrazu nalezen redundantní prvek.

Je obtížné posoudit závažnost tohoto problému, bez prozkoumání kódu.Duplicitní test je sám o sobě neškodný, ale odstranění druhého testu může mít vážné důsledky.Kód by měl být prohlédnut a mělo by být zajištěno, že test nebyl vynechán.

Příklad

Následující kód generuje toto upozornění:

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

Následující kód ukazuje různé metody opravy tohoto upozornění:

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