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

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

Замечания

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

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

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

Пример

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

void f(int x)
{
  if ((x == 1) && (x == 2)) // warning
  {
    // code ...
  }
}

Чтобы исправить это предупреждение, используйте следующий код:

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

    /* or */
    if ((x != 1) && (x != 2))
    {
        // code ...
    }
}

Средство анализа не предупреждает, имеет ли выражение побочные эффекты.