C++静态全局变量作用域

良哥玩IT 2013-10-18 04:58:41
一个解决方案下新建两个项目a、b,再添加一个头文件c.h,c中设置一个静态变量int m=0,a、b两个项目都去掉c中的静态m,
请问:当在a项目中赋值m=1时,b中的m是多少呀,是1还是0;也就是说,两个项目中的静态变量m是同一个吗?
谢谢了!
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
追_逐 2013-10-19
  • 打赏
  • 举报
回复
其实一直没有明白VS中的解决方案跟项目这间是什么关系。 C语言里说过一个程序里面只有一个main()函数,在VS里面到处都是main() 函数我真的被搞晕了。 求大神指点。
北极猩猩 2013-10-19
  • 打赏
  • 举报
回复
引用 6 楼 su_787910081 的回复:
其实一直没有明白VS中的解决方案跟项目这间是什么关系。 C语言里说过一个程序里面只有一个main()函数,在VS里面到处都是main() 函数我真的被搞晕了。 求大神指点。
到处都是main是什么意思?
北极猩猩 2013-10-19
  • 打赏
  • 举报
回复
引用 2 楼 mgy4938 的回复:
c.pp int m = 0; a.cpp extern int m; b.cpp extern int m; 这样a和b两个文件就可以共同使用变量m了。
楼主的问题是”两个不同的project"啊,不同的project编译的结果通常是两个不同的binary文件。即使使用外部声明,变量在两个binary里面也是不同的实体。
凌典 2013-10-18
  • 打赏
  • 举报
回复
外部声明
引用 2 楼 mgy4938 的回复:
c.pp int m = 0; a.cpp extern int m; b.cpp extern int m; 这样a和b两个文件就可以共同使用变量m了。
max_min_ 2013-10-18
  • 打赏
  • 举报
回复
顶楼上,授人以鱼不如授人以以渔阿
帅得不敢出门 2013-10-18
  • 打赏
  • 举报
回复
要判断是否一样,在一个项目中修改,另一项目中打印,对比下不就知道了。
nextseconds 2013-10-18
  • 打赏
  • 举报
回复
c.pp int m = 0; a.cpp extern int m; b.cpp extern int m; 这样a和b两个文件就可以共同使用变量m了。
nextseconds 2013-10-18
  • 打赏
  • 举报
回复
当然可以,不过引用的另一个文件需要声明一下:extern int m;

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧