我有两个.c文件1.c
和2.c
以及一个头文件3.h
1.c
有一个像这样定义的全局变量
int table
2.c
有一个全局变量,定义如此extern int table
和
包括3.h
3.h
已声明int table
。
编译器是否允许这样做?如果是,table
中的1.c
有多大可能会被损坏(2.c)?
我希望我清楚自己。谢谢!
答案 0 :(得分:1)
文件1.c
声明全局变量int table;
。
文件3.h
,一旦包含在源文件中,就会声明一个全局变量int table;
。它包含在2.c
中,因此2.c
现在也声明了全局变量int table;
。
它们编译正常,但您可能会收到链接器错误,指出table
是多重定义的。