内联函数探究 - noinline、always_inline,static inline,内联展开 - 嵌入式C语言自我修养 | 宅学部落
个人理解:
头文件里声明了inline的函数,编译期不一定将其内联展开,而仍将其编译为函数对象,如果不加 static 文件作用域修饰,当多个 cpp 文件都#include 该inline函数时,会在多个 cpp 文件内都定义函数对象,从而链接时报重定义错误。加上 static,即使在多个 cpp 文件内都定义该函数对象,也都是限定文件作用域的,不会产生重定义;
文章探讨了内联函数在嵌入式C中的行为,指出头文件中声明的inline函数在编译期可能不被内联,除非使用static修饰以确保文件作用域,防止多文件链接时的重定义错误。
1万+

被折叠的 条评论
为什么被折叠?



