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


C6313

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

C6313

Предупреждение C6313: неверный оператор. Флаг с нулевым значением нельзя проверить с помощью побитового И. Для проверки флагов с нулевыми значениями используйте проверку равенства.

Это предупреждение указывает, что постоянное нулевое значение предоставляется в качестве аргумента для оператора побитового И (&) в тестовом контексте. В результате получается постоянное выражение, всегда имеющее значение FALSE. Этот результат отличается от желаемого.

Обычно это возникает из-за использования оператора побитового И для тестирования флага с нулевым значением. Для тестирования флагов с нулевыми значениями следует применять проверку равенства, например с помощью == или !=.

Пример

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

#define FLAG 0

void f(int Flags )
{
  if (Flags & FLAG)
  {
    // code
  }
}

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

#define FLAG 0

void f(int Flags )
{
  if (Flags == FLAG)
  {
    // code
  }
}