一个C++工程 ,有多个cpp,怎么共用一个 全局变量?

有两个问题
1,比如我在cpp1中定义了int a=1;其他的cpp就能直接用a么?还是仅仅需要extern声明一下就行?
2,我在一个cpp2中计算了b,在cpp3中想把它显示出来,这个怎么弄的啊?
确实是新手,求教!

第1个回答  2013-08-12
第一问:仅仅需要extern声明一下就行。

第二问:在cpp3中写extern int b;,就可以使用/修改b的值了。追问

第一个问题那里,比如我在cpp1中写了“ float cep=1.222;”,那我在cpp2中写“extern float cep;
char cep_string[4];
gcvt(cep, 4, cep_string);//数字转字符串”这样可以?编译不过去啊……
头文件什么要改么?

追答

extern这语句没问题了。

使用gcvt函数要求#include
char cep_string[4];存不下4位有效数字的浮点数,请把数组尽量开大一点。这不会导致编译错误,但会有逻辑错误。

追问

提示error LNK2001: unresolved external symbol "float cep"
编译过不去……

追答

连接阶段提示cep没有定义。
cpp1中要写float cep=1.222,而且和cpp2放在同一个工程/项目里。

追问

就是这么写的啊,也是同一个工程,

就是过不去,网上搜的方法也不行……崩溃了

追答

这样应该是可以的,第一个应该是在全局变量里写的吧。请查看一下私信,再交流一下。

本回答被提问者采纳
第2个回答  2013-08-12
在其中一个文件中将其声明在全局空间,注意前面不能加static;
其他文件中在全局空间声明同样的变量,前面加extern
相似回答