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

表达式不应过于复杂

10.9.1 ID_complexExpression
目录 › next › previous

复杂的表达式不利于阅读与调试,易包含潜在的错误,应适当拆分。

下列情况可判定为复杂表达式:

  • 运算符过多
  • 有副作用的子表达式过多
  • 优先级括号嵌套层次过深
  • 函数调用或数组索引嵌套层次过深
  • 三元表达式嵌套层次过深

审计工具不妨通过配置判断表达式是否合规。

示例:

f(g(h(i(....)));           // Non-compliant

a || b || c || .... || z;  // Non-compliant

++++++n;                   // Non-compliant

x ? y ? z ? .... : ....;   // Non-compliant

配置

maxOperatorCount: 运算符最大数量,超过则报出 maxSideEffectPoints: 具有副作用的子表达式最大数量,超过则报出 maxParenthesesLevel: 优先级括号嵌套最大层数,超过则报出 maxPostfixLevel: 函数调用、数组索引嵌套最大层数,超过则报出 maxTernaryLevel: 三元表达式嵌套最大层数,超过则报出

参考

C++ Core Guidelines ES.40
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.