如题
解决方案 »
- 本人VC新手。,求高人指点
- 100分,怎么在C#的COM+包含一个事件,以及在VC6里面响应
- 求加密和解密的算法,要求加密后的字符串是可识别的
- 分解ip地址的问题,192.168.0.1-192.168.0.254
- 为什么Disable掉的Button的Caption还是Enable的样子?
- 关于ACCEPT的问题
- 已经找到了tooltip的HWND,如何得到tooltip上的文字?(sdk)
- 中国的计算机太浮躁了.....
- UG文件怎么在VC中打开
- 记得在文档中心看到一篇讲怎样去掉bcgcontrol library 评估版的版本说明,可现在找不到了
- 成都倍斯特保险代理有限公司 招聘
- 关于CREATPROCESS和WAITFORSINGLE的使用
int i=0;
这一句定义只要写在函数体外面就是全局变量,不过如果你想在别的CPP文件中用的话,在用之前要用extern 声明一下,比如上面那个定义在写在CXXXView.CPP中,你现在想在CXXXDoc.CPP中用,那么先声明:extern int i;
然后就可以用了。
可以做生成两个文件global.h,global.cpp
如果要定义全局变量int i;把int i写在global.cpp里面
同时在global.h写extern int i;
包含头文件的时候,只用包含global.h
在cpp中定义(实现)相应的全局变量或函数,然后在h文件中声明全局变量或函数。如果某个地方要使用全局变量或函数,直接include xxx.h就ok了。cpp文件中定义,h文件中声明,可也。
h文件里的叫声明默认全局变量都是在文件范围内有效的想在其他文件里使用 请在头文件里声明 extern
声明完后在别的地方extern就可以:a.cpp
int g_iGlobalVal;b.cpp
extern int g_iGlobalVal;
把声明写进一个.h文件中
然后再stdafx.h中包含那个.h文件
a.h
int nto();a.cpp
#include "a.h"
int nto()
{
return 0;
}stdafx.h
#include "a.h"
stdafx.h
extern int c;stdafx.cpp
int c;可以说这个 c 非常的全局
然后在cpp里面
#include"abc.h"
就是全局,几百个cpp都可以公用
所有的C运行时也都是全局呀! strcpy,strcat,...,都是全局呀!个人的见解 :
封装,仅是对多人合作写程序有好处,对程序代码管理有好处。
封装,最不利于内存管理,会产生很多内存碎片。本人还想探讨:
是要“封装的完美”,还是要“程序的完美”?----------------------------------------------------
记得几年前,有位精通此道的高手同事,向主管告状,说有几个人写程序用了很多的全局变量,但此高手同事的纯VC水平我们不得不佩服,ATL/COM组件等用的贼娴熟。主管懂软件管理,不会写软件,主管问我,我的回答是 :我们又不是多人合作写程序 (工业控制软件大多数都是一个人完成的),干嘛用那么多封装,我是像汇编一样,分为代码段和数据段的,程序运行稳定的很,他们用很多封装/组件,明明是一个数据,却用 N多局部变量传来传去,程序稳定才怪呢 !事实证明,我的大量全局变量的工控程序,连续运行N多年都不出问题,高手同事的大量封装,死机情况总是有,当然,我们知道,不一定是封装带来的死机,呵呵。
把它extern出来就可以啦