一个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

如何在C++内多个CPP共享同一个变量
1.全局变量的定义和普通变量的定义相同,只是在别的cpp文件中使用前需要用extern修饰符声明。例如:主文件中定义 int global = 0;别的文件里面用 extern int global;申明一下就可以用了。2.extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模...

C++\/C的项目里怎么共享“全局变量”呢?
int gvar = 3;在同一个项目的b.c中,声明gvar,同时定义一个函数,使gvar自加,并打印gvar的值:extern int gvar;\/\/加extern声明可以使读到代码的人知道,这是一个外部文件定义的全局变量,但在C\/C++中,该关键字并非强制,不加也不会出错。void func(void){ gvar ++;\/\/gvar自加,也就是...

C++ 几个.cpp文件之间如何实现数据共享
全局变量不是这么用的,main.cpp中定义,然后在graph.h中声明为外部变量就行了 eg.main.cpp int pysTotalNumber;在graph.h中 extern pysTotalNumber;

C++ 怎么定义一个全局函数,能够在一个工程的所有文件中使用!
这应该是你的log.h文件写的有问题。由于log.h应该是一个各个模块都要使用的模块,所以其他cpp文件或者h文件均会include这个log.h文件,这就会导致编译器多次解析log.h文件中的函数,所以会出现重定义。解决方法是,在log.h头文件的最开始加上:ifndef __LOG_H__define __LOG_H__\/\/log.h头文...

c++ 一个变量在多个cpp中使用问题
全局变量处输入 extern int a_;然后就可以用了

一个C++工程中不同文件之间的函数如何互相调用?
在2.cpp写 extern int a;(在全局范围写就可以了)之后就可以用a的值了。如果类型不是int,请自行修改。对于问题补充:增加一个与a同类型的全局变量,把a赋值给它,然后用上述方法。或者增加一个a的指针类型的全局变量,把a的地址赋值给它,然后用上述方法。

如何在C++中设置全局变量?
1、首先,定义一个实现加法运算自定义函数。2、接着,定义一个实现乘法运算的自定义函数。3、最后,在主函数中实现程序的运算。4、定义在函数外部没有被花括号括起来的变量称为全局变量,全局变量的作用域从变量定义的位置开始一直到文件结束。5、如果在一个程序中多个函数都要对同一个变量进行处理,...

C++中如何在多文件的类中声明全局静态变量,使其在整个工程区中都能...
既然你想整个工作区都用那个变量,你就放到一个全局文件中,在.cpp中声明,在.h中加入extern声明,想使用该变量的时候,引用该文件就行,如果非要放到类里,你看看这个类构造的合适么?即这个构建这个类的功能是什么,这个变量是必须的么?需要暴露么?再者可以在构造函数中将此变量付给该类的变量 ...

C++一个项目里有两个CPP文件,想在一个CPP文件里调用另一个CPP文件的计...
C++里面是有头文件的,标准的做法是:头文件里面放函数声明,cpp放函数具体实现。按照你的描述应该可以用一个.h头文件放全部函数的声明,然后在1.cpp里放一个函数,2.cpp里放另一个函数,我们把1.cpp作为程序的入口,作为数据源,在这里调用2.cpp里的函数,这个函数返回计算结果。注意,两个cpp都要...

一个关于C++全局变量的问题: 为什么在不同的源文件中访问一个头文件中...
我刚才遇到了你差不多的问题,我的理解是:因为包含.h文件实际上就是把.h中的内容扩展到每个.c中;也就是说,扩展之后每个.c中都定义了这个变量;但又因为static对全局变量是有作用域限制的,所以他们之间的关系是名字一样,(若没有static则会报错,重定义了)但分配的内存地址是不一样的;通俗的...

相似回答