C变量的作用域问题

   以前不管写单片机还是MFC程序,都涉及到了很多全局变量的问题,每次都疑惑了很久,虽然最后都解决了,但总的来说是没搞懂的。昨天发帖,加上平时的实验,终于搞得比较清楚了。

  对于多文件的都调用的全局变量,我的习惯是定义一个Globle.cpp,一个Globle.h.比如在Globle.cpp里面定义变量int a ,在Globle.h里声明为extern int a;然后在我其他文件需要的时候包含Globle.h,就可以用这个全局变量a了

 由此我们可以推出一个原则:(C++ Primer 第4版第2章重点强调过

 头文件中,只应该包含各种各样的 声明(declaration),不该包含各种各样的定义(defination).定义一律在.cpp中。

但是有3个是例外

1. class/struct 的定义

2. inline函数的定义

3. 在编译时(而不是运行时)即可确定值的 const 类型的变量的定义

而我发帖回帖的也有人说,在实际的工程中都是这样处理的。我相信实践出真知的。

 而从作用域来说,谭浩强的<<C程序设计>>第三版,P197页也说得很清楚了,鉴于篇幅,就不详细写上来了.(其实是自己懒得敲了...)

 附上我发的两篇帖子,希望能给跟我曾经有过同样疑惑的人一点帮助。

http://topic.csdn.net/u/20120329/10/00866e17-1ed5-4d51-84a5-cad131f38768.html?seed=96279110&r=78076374#r_78076374

http://topic.csdn.net/u/20120329/10/a5e17631-44d1-4fdd-9686-f19514f56a32.html?seed=868962069&r=78076212#r_78076212

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值