无法使用头文件中定义的函数

时间:2011-07-15 15:23:19

标签: c header header-files function-declaration

我的源文件以:

开头
#include "foo.h"

我可以使用头文件中的所有全局变量,类型和结构。在我的头文件中,我首先介绍了几个包含:

#include<file.h>

然后转到全局变量:

#define GLOBAL

然后结构:

#typedef struct boo;

然后打字。然后我去功能声明。即:

size_t foo(int*r, size_t nitems);

我错误的是我收到链接器错误&gt;

3 个答案:

答案 0 :(得分:1)

问题可能在于你如何联系。

答案 1 :(得分:1)

头文件为源代码提供函数声明。正如您所发现的那样,足以让您的代码进行编译,但却无法将其链接起来。

要使其链接,您必须为链接器提供包含实际编译函数的文件 - 函数声明实际上是对编译器的承诺,您将执行此操作。

具体如何操作取决于您使用的工具以及编译功能的形式。

答案 2 :(得分:0)

对于简单的替换标识符,

#define与复制/粘贴完全相同。

完成后

#define GLOBAL 5

以下代码

int GLOBAL;
GLOBAL = 13;
putchar(GLOBAL);

转换为

int 5;
5 = 13;
putchar(5);

显然无法编译。