Поделиться через


C6287

Предупреждение C6287: избыточный код: левое и правое подчиненные выражения идентичны.

Данное предупреждение означает, что в выражении обнаружен избыточный элемент.

Серьезность данной проблемы можно определить только после изучения кода. Сама по себе повторяющая проверка не является опасной, однако удаление второй проверки может привести к тяжелым последствиям. Следует исследовать код и убедиться в том, что проверка не пропущена.

Пример

Данное предупреждение создается в следующем коде:

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

В следующем коде показаны различные методы устранения этого предупреждения:

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