uCOS中全局变量的使用方法

在C语言编程中经常会遇到全局变量。全局变量的定义一般采用下面的方式

.C文件中定义

int g_a;

.h文件中声明

extern int g_a;

使用上面这种方法,当需要更改全局变量时候就需要更改两个地方。uC/OS-II使用了另一种巧妙的全局变量定义的方法,使得声明和定义都在一个地方,提高代码的可读性和维护性。

//在ucos_ii.h
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif
OS_EXT INT32U OSIdleCtr;
OS_EXT INT32U OSIdleRun;
OS_EXT INT32U OSIdleMax;
//在ucos_ii.c
#define OS_GLOBALS
#include"ucos_ii.h"

在其他.c文件包含ucos_ii.h文件时候,不打开宏定义,此时其他.c文件就是一个外部变量声明。

这样变量的声明和定义通过宏定义就可以都坐在头文件中,当我们需要修改全局变量时候,就比较方便。

猜你喜欢

转载自blog.csdn.net/hushiganghu/article/details/68066770