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