假设我有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 中声明该函数何时编译器会发出错误或未声明该函数的内容。
答案 0 :(得分:2)
简而言之,应该可以做到这一点。 为什么?实现函数的文件不必位于具有相同名称的头文件中。 如果有任何问题,链接器将解决任何问题,如果缺少某些内容则会抱怨。 如果编译器抱怨,那么缺少头文件或者头文件函数定义与c文件中的内容不匹配。