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