参考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执行的,是不产生内存分配的,所以这种用法就显得非常巧妙了。