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