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

不应定义复杂的内联函数

8.43 ID_complexInlineFunction
目录 › next › previous

是否对函数进行内联优化由编译器自行决定,当函数执行的开销远大于调用的开销时,往往不会进行内联优化。

不适合将函数定义为内联函数的情况:

  • 语句数量过多
  • 存在循环或异常处理语句
  • 存在 switch 分枝语句
  • 存在递归调用

建议内联函数的实现不超过 3 个语句。

内联函数应在头文件中定义,但也应保持头文件简洁,可参见 ID_definedInHeader 的进一步讨论。

内联函数可以在多个翻译单元中重复定义同一实例,有时需要利用这种特性将函数在头文件中实现,以便将库以头文件的形式发布,在这种情况下应在 .imp 等特殊头文件中实现内联函数,.imp 等文件中的内联函数可不受本规则限制。

配置

maxStatementsCount: 内联函数语句数量上限,超过则报出 excludedFileExts: 不受限制的文件扩展名

相关

ID_definedInHeader

依据

ISO/IEC 9899:1999 6.7.4(5)-implementation ISO/IEC 9899:2011 6.7.4(6)-implementation ISO/IEC 14882:2003 7.1.2(2 4) ISO/IEC 14882:2011 7.1.2(2 4) ISO/IEC 14882:2017 10.1.6(2 3)

参考

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