VC全局变量的定义.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC全局变量的定义.doc

全局变量一般这样定义: 1。在一类的.cpp中定义?int?myInt; 然后再在要用到的地方的.cpp里extern?int?myInt;这样就可以用了。 2。在stdafx.cpp中加入: int?myInt; 然后在stdafx.h中加入: extern?int?myInt 这样定义以后无论在什么文件中都是可见的. 3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h, 把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h 中就不要加值了。然后调用时,第一次调用的#i?nclude?Glbs.h,以后调用的#i?nclude? Externs.h 另: 问:如何在VC++中使用全局变量,以使文档中的所有类都能访问。? ??答:把该变量放到该应用程序类的头文件中的attribute处。然后,在程序的任何地方,你都可以用 下面的方法来访问该变量:? ??CMyApp?*app=(CMyApp*)AfxGet-App();? ??app-MyGlobalVariable=…? ??用这个方法,不但可以定义全局变量,也可以定义全局对象。? ??例如:? ??MyClass?MyObject;? ??CMyApp*app=(CMyApp*)AfxGet-App();? ??app-MyObject.MyFunction();? VC中使用全局变量的2种办法及防错措施?? 1.?对于全局变量存在和函数一样的问题,为了在其他CPP文件中能够访问这些变量,必须在主文件的H文 件中加上extern声明,格式如下:? extern?varibletype?var;?(声明) 在主文件的CPP文件中定义? varibletype?var;?(定义) 例子:? AppWizard建立一个Test工程? 那么在Test.h中声明extern?CString?cs;? 在Test.app定义CString?cs;? ???如果要定义整个工程的全局变量,在任何一个CPP文件中进行定义,然后在需要引用这个变量的文件 中进行声明。如全局变量很多可以选择使用定义全局变量的。h文件,在需要的地方直接include头文件 即可,不需要写那么多extern了。 2.应用程序类的主头文件处定义变量varibletype?var,然后,在程序的任何地方,都可以用下面的方法 来访问该变量:?? ??CClassApp?*app=(CClassApp*)AfxGetApp();?? ??app-var=? ?类似的,以上方法也可以定义全局对象? 例子:? AppWizard建立一个Test工程? 那么在Test.h中声明?CString?cs;? 使用的时候CTestApp?*app=(CTestApp*)AfxGetApp();?? ????app-cs=Global? ? 防错措施:? 若定义的函数和全局变量在多个文件包含且造成嵌套或多次调用的话,这样将导致这个头文件每被包含 依次,函数或变量就被重新定义一次,在链接编译时会导致重定义错误。为此需要使用一种被称为Guard? macro的技术来保证不出错。在一个头文件开头加上?? #ifndef???_MACRO_1_? #define???_MACRO_1_? 在文件末尾增加?? #endif? ?另外转一下一位朋友写的在MFC中定义全局变量 在MFC下如何定义全局变量和全局函数VC++ 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定 义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现, 这里只介绍两种方法。 一、在应用程序类中定义 用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类。这个类主要进行程序的初始化,生 成文档、视图对象等工作。我们可以把需要全局访问的变量和函数定义为这个类的成员变量和成员函数 ,就可以实现全局访问了。 从严格意义上讲,这种变量和函数并不是全局的,因为它仍然只是类中的成员,只是由于我们很容易获 得CxxxApp类的指针,所以我们可以在文档、视?图、对话框以及各种自定义类中访问到它们,达到与全 局变量类似的效果。访问时用函数“AfxGetApp()”获得CxxxApp类的指针,用?“AfxGetApp()-成员” 访问变量或函数。 例: Test.h:(应用程序类头文件) class?CTestApp?:?public?CWinApp { public: int?x;?//全局变量 int?f(int?y);?//全局函数 ………… }; Test.cpp:(应

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档