c-MISRA 2012规则8.10静态内联



为什么MISRA建议使用static存储类声明内联函数?虽然关键字inline是编译器用实际函数体替换所有函数调用的提示,编译器可能执行也可能不执行,但赋予函数内部链接(static(或外部链接(extern(如何影响编译器的内联操作?

MISRA C:2012给出了规则8.10的基本原理:

基本原理

如果内联函数是用外部链接声明的,但没有在同一转换单元中定义,则行为是未定义的。

对使用外部链接声明的内联函数的调用可以调用函数的外部定义,或者可以使用内联释义尽管这不应影响调用函数时,它可能会影响执行时间,因此对实时程序的影响。

最新更新