C6313

更新:2007 年 11 月

警告 C6313:运算符不正确: 不能使用按位与来测试零值标志。应使用相等测试来检查零值标志

此警告意味着在测试上下文中,将常数值零作为参数提供给按位与 (&) 运算符。结果表达式是常数,计算结果为 false;这不是预期的结果。

这通常是由于使用按位与来测试具有零值的标志而导致的。若要测试零值标志,必须使用 == 或 != 执行相等测试。

示例

下面的代码生成此警告:

#define FLAG 0

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

若要更正此警告,请使用下面的代码:

#define FLAG 0

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