循环方向不一致¶
ID: cpp/inconsistent-loop-direction
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- correctness
- external/cwe/cwe-835
Query suites:
- cpp-security-and-quality.qls
for-loop
迭代表达式相对于初始化语句和条件表达式反向运行。
此警告表明 for-loop
可能无法按预期工作。
建议¶
要解决此问题,请检查循环条件是否正确,并将迭代表达式更改为匹配。
示例¶
在以下示例中,初始化语句 (i = 0
) 和条件表达式 (i < 100
) 表明预期的迭代表达式应该递增,但实际上使用的是后缀递减运算符 (i--
)。
void f()
{
for (signed char i = 0; i < 100; i--)
{
// code ...
}
}
要解决此问题,请将迭代表达式更改为匹配初始化语句和条件表达式的方向:i++
。
参考¶
通用弱点枚举:CWE-835.