【发布时间】:2015-10-16 13:29:06
【问题描述】:
我在使用 inline 关键字时遇到问题。
在头文件中:
void checkContinuation() __attribute__((always_inline));
在源文件中:
void __attribute__((always_inline)) checkContinuation() { ..... }
在我调用它的主文件中,我得到了一个编译错误,其中说
对 checkContinuation() 的未定义引用
我阅读了所有这些链接inline with external linkage & inline function linkage
据我所知,C++ 中的内联函数具有外部链接,这意味着该函数必须只有一个定义可用,但其他人说它必须在使用它的每个翻译单元中定义。
那么正确的答案是什么?如何使用定义一次但经常使用它?
另外,头文件和源文件中内联函数属性的正确语法是什么?和__always_inline有什么区别?
【问题讨论】: