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文件就是一个外部变量声明。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值