一种全局变量的定义方法

时间:2021-10-29 20:08:46

参考uCOS中的全局变量定义,下面的方法很巧妙:

在XXX.h头文件中定义如下

#ifdef  XXX_GLOBALS

#define   XXX_EXT

#else     XXX_EXT   extern 

然后再XXX.C文件中声明

#define   XXX_GLOBALS


这样做有一个好处,在XXX.C文件中如果使用这些变量,由于已经宏定义了XXX_GLOBALS ,所以XXX_EXT为空,那么这些变量都是局部变量,而其他.c文件使用时,这些变量就变成了external全局变量。但是真正执行时,是通过xxx.c执行的,是不产生内存分配的,所以这种用法就显得非常巧妙了。