- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在头文件声明全局变量和创建extern
在头文件声明全局变量和创建extern 在头文件声明全局变量和创建extern问题:是否有简单的方法,在头文件里定义我的变量,同时也为它们创建extern定义?回答:是的。尽管这不是必需的,使用正确的宏和一个头文件还是很容易实现的。通常,你在C文件中声明一个变量,而在头文件中创建extern定义。然而,如果你想的话,下面的技巧用来在同一个头文件中声明变量,并且对它们进行extern定义。首先,创建一个头文件如下(如vars.h):[cpp]view plaincopyprint?/*----------------------------------------------------------------------------?vars.h?注:在包含vars.h头文件声明和初始化全局变量前面使用?#define?VAR_DECLS?1语句。?只是包含它,而不定义VAR_DECLS以引用变量。?----------------------------------------------------------------------------*/??#ifndef?VAR_DEFS??????????//?保证文件只被包含一次??#define?VAR_DEFS?1??/*----------------------------------------------?设置变量声明宏?----------------------------------------------*/??#ifndef?VAR_DECLS??#?define?_DECL?extern??#?define?_INIT(x)??#else??#?define?_DECL??#?define?_INIT(x)??=?x??#endif??/*----------------------------------------------?声明变量如下:?_DECL?[标准变量声明]?_INIT(x);?x是初始化变量的值。如果变量没有初始化的值,可以如下声明?_DECL?[标准变量声明];?----------------------------------------------*/??_DECL?int?var_a?_INIT(100);??_DECL?int?var_b;??_DECL?int?var_c?_INIT(27);??#endif??/*----------------------------------------------------------------------------?----------------------------------------------------------------------------*/??/*----------------------------------------------------------------------------vars.h注:在包含vars.h头文件声明和初始化全局变量前面使用 #define VAR_DECLS 1语句。只是包含它,而不定义VAR_DECLS以引用变量。----------------------------------------------------------------------------*/#ifndef VAR_DEFS // 保证文件只被包含一次#define VAR_DEFS 1/*----------------------------------------------设置变量声明宏----------------------------------------------*/#ifndef VAR_DECLS# define _DECL extern# define _INIT(x)#else# define _DECL# define _INIT(x) = x#endif/*----------------------------------------------声明变量如下:_DECL [标准变量声明] _INIT(x);x是初始化变量的值。如果变量没有初始化的值,可以如下声明_DECL [标准变量声明];----------------------------------------------*/_DECL int var_a _INIT(100);_DECL int var_b;_DECL int var_c _INIT(27);#endif/*----------------------------------------------------------------
文档评论(0)