使用inline
关键字有两个含义(第7.1.3 / 4节):
- 它提示编译器,在调用点替换函数主体比通常的函数调用机制更可取。
- 即使省略了内联替换,也要遵循内联的其他规则(尤其是一个定义规则)。
通常,如果需要,任何主流的编译器都会在调用时替换函数体,因此inline
,#1
真正不需要仅将函数标记为。
更进一步 #2
,据我了解,当您将一个函数声明为static inline
function时,
该static
对功能力关键字inline
函数有一个内部连接(内联函数具有外部连接)这样的功能中的每一个实例被视为一个单独的功能(各功能的地址是不同的)和这些功能中的每一种情况下都有自己的副本静态局部变量和字符串文字(内联函数只有这些的一个副本)
因此,这种功能就像其他任何功能一样 static
功能,并且关键字inline
不再具有重要性,因此变得多余。
因此,实际上标记功能static
,inline
两者都没有用。应该是static
(不是最优选的)还是inline
(最优选的),
那么,在一个函数上使用static
和inline
在一起实际上是没有用的吗?