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


C6288

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

C6288

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

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

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

Пример

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

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

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