Предупреждение C6289

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

Замечания

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

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

Имя анализа кода: MUTUALEXCLUSIONOVERORISTRUE

Пример

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

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