运算顺序不正确: 关系运算符的优先级高于位运算符
备注
此警告指示运算符优先级中可能存在的错误,这种错误可能会生成不正确的结果。 应检查该优先级并使用括号来阐明意向。 关系运算符(<、>、<=、>=、==、!=)的优先级高于位运算符(&、|、^)。
代码分析名称:BITWISERELATIONPRECEDENCEERROR
示例
以下代码将生成此警告:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if (FORMAT & TYPE != input)
{
// code...
}
}
以下代码使用括号来更正此警告:
#include <stdlib.h>
#define FORMAT 1
#define TYPE 2
void f(int input)
{
if ((FORMAT & TYPE) != input)
{
// code...
}
}