和有什么区别static inline
, extern inline
和一个正常的inline
功能?
我看到过一些对此的模糊解释。据我了解,static inline
不只是一个inline
函数仅在某个文件中被称为static
关键字通常意味着。同样适用于extern inline
我也想,这与解释不一样extern
变量。任何答案将不胜感激!
函数定义为static inline
定义具有内部链接的内联函数。此类函数根据这些限定符的“通常”属性“按预期”工作:static
给它内部链接和inline
使其内联。因此,这个函数对于翻译单元来说是“本地的”并且是内联的。
一个函数定义只需inline
定义具有外部链接的内联函数。然而,这样的定义被称为内联定义它不起作用外部定义对于该功能。这意味着即使这个函数有外部链接,它也会被视为不明确的来自其他翻译单元,除非您提供单独的外部定义为它在某个地方。
函数定义为extern inline
定义一个具有外部链接的内联函数,同时该定义用作外部定义对于这个功能。可以从其他翻译单元调用此类函数。
最后两段意味着您可以选择提供一个extern inline
具有外部链接的内联函数的定义,或为其提供两个单独的定义:一个inline
和别的extern
。在后一种情况下,当您调用该函数时,编译器可以选择这两个定义中的一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)