☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

比较运算符左右子表达式不应相同

10.3.9 ID_selfComparison
目录 › next › previous

与自身比较的结果恒为真或恒为假,往往是某种笔误。

示例(设 a 为变量或表达式):

a == a   // Non-compliant
a != a   // Non-compliant
a > a    // Non-compliant
a >= a   // Non-compliant
a < a    // Non-compliant
a <= a   // Non-compliant

例外:

void foo(float a) {
    if (a != a) {     // Let it go
        ....
    }
}

当 a != a 为真时表示 a 为无效值“NaN”,这是判断浮点数是否有效的惯用方法,可不受本规则约束。

参考

CWE-1025
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.