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