a.cpp包含了head.h
b.cpp包含了head.h
这事head.h中的int x定义分别在两个cpp文件中定义了,就出现了重复定义的情况,因为int x出现了两次
如果非要把全局变量写入头文件,可以这样
head.h声明extern int x
head.cpp中包含head.h并且定义int x
a.cpp包含了head.h
b.cpp包含了head.h
这时头文件是声明,而链接时声明是弱定义,不会造成重复定义,真正的定义在head.cpp中
C语言可以通过在.c文件中定义,头文件中extern的方式实现一个能够在所有文件中都可以使用的全局数组变量。
具体做法如下:
设有一个多项目文件有 1.c、2.c和3.c三个源程序文件;
如果有一个全局数组需要所有文件使用,那么可以添加一个data.c文件,在其中添加全局数组的定义;
向项目中添加data.h文件,在data.h文件中用 extern声明该数组;
只需要在相应的.c文件中添加#include "data.h",那么久可以使用data.c中的全局数组了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)