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


C6289

Обновлен: Ноябрь 2007

C6289

Предупреждение C6289: неверный оператор. Взаимное исключение || всегда дает ненулевую константу. Предполагалось использовать "&&"?

Это предупреждение указывает, что в тестовом выражении переменная проверяется для двух различных констант, а результат зависит от того, имеет ли любая из этих констант значение true. Результат всегда равен true.

Это обычно возникает из-за использования || вместо &&, но также может возникнуть из-за использования != вместо ==.

Пример

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

void f(int x)
{
  if ((x != 1) || (x != 3))
  {
    // code 
  }
}

Для устранения этого предупреждения используйте следующий код:

void f(int x)
{
  if ((x != 1) && (x != 3))
  {
    // code 
  }
}

/* or */
void f(int x)
{
  if ((x == 1) || (x == 3))
  {
    // code 
  }
}