强制另一个文件定义一个函数



假设我有三个独立的文件,分别称为:main.ctest.cest.h。我如何"强制"一个包含test.h的函数来定义一个已经在test.h中声明的函数,而test.c文件可以调用它。

这有点乱,所以让我给你一些我的意思的代码示例。

测试.h

...
#define SOMETHING
...
#ifdef SOMETHING
inline void test_func(BYTE b);
#endif
...

测试.c

#include "test.h"
void somefunction(void) 
{
    ...
    #ifdef SOMETHING
    test_func(integer_value);
    #endif
    ...        
}

main.c

#include "test.h"
int main(void)
{
    ...
}
inline void test_func(BYTE b)
{
    // Do something with b
}

简言之:test.h声明了一个函数,main.c定义了该函数,test.c

这可能吗?怎样

编辑:

当编译器给出错误或未声明函数时,用户在main.c中声明该函数。

简而言之,应该可以做到这一点。为什么?实现函数的文件不必位于具有相同名称的头文件中。链接器将解决任何问题(如果有的话),并在缺少内容时进行投诉。如果编译器抱怨,则说明缺少头文件,或者头文件函数定义与c文件中的不匹配。

最新更新