#ifdef、#else、#endif的运用---极为方便的全局变量的定义和声明

来源:互联网 发布:北师大网络教育作业 编辑:程序博客网 时间:2024/06/05 05:55

在模块编程的过程中,我们经常会遇到全局变量的定义和声明,一般我们会在某个模块中定义,在别的模块中使用时在其头文件中声明即可

虽然这样可以达到目的,但是显得比较麻烦,现在我利用#ifdef、#else、#endif方便快捷的实现全局变量的定义和声明

如:我们把需要的全局的变量都放着同一个头文件中

头文件:includes.h

#ifdef   GLOBALS

#define  OS_EXT

#else

#define OS_EXT  extern

#endif

//全局变量

OS_EXT   INT32U  param_1;

OS_EXT   INT32U  param_2;

OS_EXT   INT32U  param_3;

模块1:module_1.h  (在这个模块中定义includes.h中的变量)

#define GLOBALS

#include "includes.h"

在预编译时,在includes.h中的变量在module_1.h 会变为下面这样(即定义)

INT32U  param_1;

INT32U  param_2;

INT32U  param_3;


当在模块3中使用这些变量时,只需要声明即可,如下:

模块2:module_2.h  

#include "includes.h" //只需要包含头文件即可

在预编译时,在includes.h中的变量在module_2.h 会变为下面这样(即声明):

extern INT32U  param_1;

extern INT32U  param_2;

extern INT32U  param_3;

按照上面的做法,在需要那些全局变量时只需要包含头文件即可,不需要在写代码声明,不仅减少了代码量,而且方便代码的管理。

以上是个人看法 ,欢迎大家来补充!

0 0