3

我目前正在使用 keil 编译器在 C 中编码。我面临一个问题,我必须使用内联函数(在我的情况下性能很重要,所以我必须使用它)并且我有一个包含内联函数的文件。这个内联函数在头文件中声明,我尝试从另一个包含头文件的文件中访问。我总是得到:函数调用时未定义的符号错误......

这是说明我的问题的示例:

文件:test.h

extern void my_function (void);

文件:test.c

#include "test.h"

__inline void my_function (void)
{
   printf("test ok\r\n");
}

文件:main.c

#include "test.h"

int main (void)
{
    my_function ();
}

==> 链接错误:未定义的符号 my_function

我可以改用宏,但是您知道解决我的问题的其他替代方法吗?

4

2 回答 2

3

您可以在头文件中定义内联函数:

File : test.h

static inline void my_function (void)
{
   printf("test ok\r\n");
}
于 2013-10-03T15:15:26.827 回答
2

您的问题的解决方案是在头文件中定义内联函数。

于 2013-10-03T15:10:56.663 回答