从另一个文件访问内联函数

时间:2013-10-03 15:08:20

标签: c keil

我目前正在使用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

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

2 个答案:

答案 0 :(得分:2)

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

File : test.h

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

答案 1 :(得分:1)

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