比较意图赋值¶
ID: cpp/compare-where-assign-meant
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- reliability
- correctness
- external/cwe/cwe-482
Query suites:
- cpp-security-and-quality.qls
此规则查找在赋值运算符 =
更合理的位置使用等式运算符 ==
的情况。由于 =
和 ==
运算符的相似性以及表达式作为顶级语句的有效性,这在 C 和 C++ 中是一个常见的错误。
此规则会标记在丢弃其结果的位置出现的每个等式运算符。
建议¶
检查以确保标记的表达式不是输入错误。如果确实打算丢弃等式测试的结果,则应将其显式转换为 void
。
示例¶
int x;
x == 4; // most likely = was intended. Otherwise this statement has no effect.
...
参考资料¶
Tutorialspoint - C++ 编程语言:C++ 中的运算符
维基百科:C 和 C++ 中的运算符
通用弱点枚举:CWE-482.