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

作用域及类型嵌套不应过深

8.46 ID_nestedTooDeep
目录 › next › previous

作用域及类型嵌套过深会造成阅读和维护困难。

建议:

  • 函数作用域嵌套不超过 7 层
  • 内联函数作用域嵌套不超过 2 层
  • lambda 表达式内作用域嵌套不超过 5 层
  • 类、结构体嵌套不超过 3 层
  • 命名空间嵌套不超过 4 层

示例:

if (cond0)
    if (cond1)
        .... nested 10 layers ....
                if (cond10)  // Terrible
                    ....

审计工具不妨通过配置决定嵌套层数是否合规。

配置

maxFunctionNestedDepth: 函数作用域最大嵌套层数,超过则报出 maxInlineFunctionNestedDepth: 内联函数作用域最大嵌套层数,超过则报出 maxLambdaNestedDepth: 函数作用域最大嵌套层数,超过则报出 maxTypeNestedDepth: 类型最大嵌套层数,超过则报出 maxNamespaceNestedDepth: 命名空间最大嵌套层数,超过则报出

参考

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