读书人

C++静态全局变量作用域解决方案

发布时间: 2013-10-24 18:27:24 作者: rapoo

C++静态全局变量作用域
在一个解决方案下新建两个项目a、b,再添加一个头文件c.h,c中设置一个静态变量int m=0,a、b两个项目都去掉c中的静态m,
请问:当在a项目中赋值m=1时,b中的m是多少呀,是1还是0;也就是说,两个项目中的静态变量m是同一个吗?
谢谢了! c++ 全局变量 static 静态变量
[解决办法]
要判断是否一样,在一个项目中修改,另一项目中打印,对比下不就知道了。

[解决办法]

引用:
c.pp
int m = 0;

a.cpp
extern int m;

b.cpp
extern int m;

这样a和b两个文件就可以共同使用变量m了。


楼主的问题是”两个不同的project"啊,不同的project编译的结果通常是两个不同的binary文件。即使使用外部声明,变量在两个binary里面也是不同的实体。

读书人网 >C++

热点推荐