3

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

int foo;

在源文件“ac”和“bc”中,包含头文件。

#include "foo.h"

两个地方是否有两个独立的 foo,或者“ac”和“bc”之间只有一个 foo 共享?我看到这发生在其他人的共享代码中。如果您能理解这一点,请提前致谢。

4

2 回答 2

2

多次定义外部对象会出错。

extern int foo;在头文件和int foo;一个文件中使用.c

文件范围内的extern说明符(如果没有初始化程序)声明而不定义。

于 2012-09-18T19:10:22.693 回答
0

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

它完全等同于a.cb.c包含两者int foo;

于 2012-09-18T19:13:27.160 回答