Aracılığıyla paylaş


C6287

C6287 Uyarı: artıklı kod: sağ ve sol sub-expressions özdeş

Bu uyarıyı bir deyim içinde bir yedek öğe algılandı gösterir.

Bu sorunun ciddiyetine kodunu inceleyerek olmadan miktarını kararlaştırmak zordur.Yinelenen bir sınama kendi başına zararsız olduğu halde silme ikinci sınama sonuçlarını ciddi olabilir.Kod, bir test değil unutulmuş sağlamak için denetlenecek.

Örnek

Aşağıdaki kod, bu uyarı oluşturur:

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

Aşağıdaki kod bu uyarıyı düzeltmek için çeşitli yöntemler gösterir:

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