不应定义复杂的内联函数
8.43 ID_complexInlineFunction
是否对函数进行内联优化由编译器自行决定,当函数执行的开销远大于调用的开销时,往往不会进行内联优化。
不适合将函数定义为内联函数的情况:
- 语句数量过多
- 存在循环或异常处理语句
- 存在 switch 分枝语句
- 存在递归调用
建议内联函数的实现不超过 3 个语句。
内联函数应在头文件中定义,但也应保持头文件简洁,可参见 ID_definedInHeader 的进一步讨论。
内联函数可以在多个翻译单元中重复定义同一实例,有时需要利用这种特性将函数在头文件中实现,以便将库以头文件的形式发布,在这种情况下应在 .imp 等特殊头文件中实现内联函数,.imp 等文件中的内联函数可不受本规则限制。
配置
maxStatementsCount: 内联函数语句数量上限,超过则报出
excludedFileExts: 不受限制的文件扩展名
相关
依据
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)