以前不管写单片机还是MFC程序,都涉及到了很多全局变量的问题,每次都疑惑了很久,虽然最后都解决了,但总的来说是没搞懂的。昨天发帖,加上平时的实验,终于搞得比较清楚了。
对于多文件的都调用的全局变量,我的习惯是定义一个Globle.cpp,一个Globle.h.比如在Globle.cpp里面定义变量int a ,在Globle.h里声明为extern int a;然后在我其他文件需要的时候包含Globle.h,就可以用这个全局变量a了
由此我们可以推出一个原则:(C++ Primer 第4版第2章重点强调过)
但是有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