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

时间:2015-02-18 19:18:29

标签: c

假设我有3个单独的文件: main.c test.c test.h 。我怎么能强迫"强迫"包含 test.h 的函数,用于定义已在 test.h 中声明的函数, test.c 文件可以调用它。

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

test.h

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

test.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 中声明该函数何时编译器会发出错误或未声明该函数的内容。

1 个答案:

答案 0 :(得分:2)

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