头文件共享中定义的变量?

时间:2012-09-18 19:08:46

标签: c header-files

在头文件“foo.h”中,有以下语句,

int foo;

在源文件“a.c”和“b.c”中,包含头文件。

#include "foo.h"

两个地方有两个独立的foo,还是只有一个foo在“a.c”和“b.c”之间共享?我看到这发生在来自其他人的共享代码中。如果您能理解这一点,请提前致谢。

2 个答案:

答案 0 :(得分:2)

通过多次定义外部对象,您将收到错误。

在标题文件中使用extern int foo;,在int foo;个文件中使用.c

文件范围声明的extern说明符(如果没有初始值设定项)声明而没有定义。

答案 1 :(得分:0)

预处理器只需将#include "foo.h"替换为foo.h的内容。

完全等同于a.cb.c同时包含int foo;