最佳答案
使用 inline
关键字(7.1.3/4)有两个含义:
通常,如果需要,任何主流编译器都会在调用点替换函数体,因此仅仅为 #1
标记函数 inline
实际上是不需要的。
进一步,当你声明一个函数为 static inline
函数时,
函数上的 static
关键字迫使 inline
函数有一个内部链接(内联函数具有外部连接)这样一个函数的每个实例都被视为一个单独的函数(每个函数的地址不同) ,并且这些函数的每个实例都有它们自己的静态局部变量和字符串文字(内联函数只有这些函数的一个副本)的副本
因此,这样一个函数的行为就像任何其他的 static
函数和关键字 inline
没有重要性了,它变得多余。
因此,实际上标记一个函数 static
和 inline
都没有任何用处。要么是 static
(不太喜欢) ,要么是 inline
(最喜欢) ,
那么,在函数 差不多吧上同时使用 static
和 inline
是否无用呢?