C变量的作用域问题

来源:互联网 发布:双十一淘宝图书打折吗 编辑:程序博客网 时间:2024/05/15 12:41

   以前不管写单片机还是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

原创粉丝点击