CodeQL 文档

循环方向不一致

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

点击查看 CodeQL 仓库中的查询

for-loop 迭代表达式相对于初始化语句和条件表达式反向运行。

此警告表明 for-loop 可能无法按预期工作。

建议

要解决此问题,请检查循环条件是否正确,并将迭代表达式更改为匹配。

示例

在以下示例中,初始化语句 (i = 0) 和条件表达式 (i < 100) 表明预期的迭代表达式应该递增,但实际上使用的是后缀递减运算符 (i--)。

void f()
{
    for (signed char i = 0; i < 100; i--)
    {
        // code ...
    }
}

要解决此问题,请将迭代表达式更改为匹配初始化语句和条件表达式的方向:i++

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私