【发布时间】:2017-04-21 16:15:51
【问题描述】:
我对在 C 代码 (C99) 中使用内联关键字有疑问。 我知道 C99 内联语义不同于 C++ 或 gnuC 内联规则, 我读过
http://www.greenend.org.uk/rjk/tech/inline.html
和
但是,我就是无法让它工作。
我在file1.c中有如下函数定义
inline myfunc(arguments)
{
}
这个函数是从file2.c中的另一个函数调用的
在那个 file2.c 我尝试使用
extern inline myfunc(arguments);
在从其他函数调用此函数之前
我仍然不断收到错误 - myfunc 的隐式声明
如果我删除了 extern inline,则会出现未定义的引用错误
由于我的代码结构,不能将 myfunc 函数定义放在头文件中,也不能将其作为静态内联,因为它必须从不同的编译单元调用。
我做错了什么?如何解决。
【问题讨论】: