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

标签 c

假设我有 3 个单独的文件:ma​​in.ctest.ctest.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
    ...        
}

ma​​in.c:

#include "test.h"

int main(void)
{
    ...
}
inline void test_func(BYTE b)
{
    // Do something with b
}

简而言之:test.h 声明了一个函数,ma​​in.c 定义了该函数,test.c 调用了该函数。

这可能吗?怎么办?

编辑:

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

最佳答案

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

关于c - 强制另一个文件定义一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592028/

相关文章:

更改 Char * 的内容

c - Git HTTP 错误 'fatal: protocol error: bad line length character: '

c - 使用 MPI_Send 发送矩阵的多列

c++ - extern C 不能在类级别使用?

c - C-如何将char数组传递给函数进行排序?

在函数外部更改静态变量的值

c++ - 将空数据写入非阻塞套接字会导致 epoll_wait 挂起

c - 无法在 C 中使用 gets() 获取字符串

objective-c - Objective-C/iOS 编程中有用的指针算法的任何示例?

C 二叉搜索树不给左右节点赋值?