嵌入式操作系统原理及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 指针

指针恰恰是解决数组固定长度的问题的一个方法。指针从明确意义上来说,就是数据地址的一种表示。通过对指针的操作,可以完成对某一个内存单元的数据访问。

*和&是指针的常用运算符号。*p操作,返回p 的值。&p操作,返回声明p时开辟的地址。

在µCOS-Ⅱ.H中下面的代码声明一个指针数组OSTCBPrioTbl,元素的类型是指针,并且是OS_TCB类型的指针。

OS_TCB   *OSTCBPrioTbl[OS_LOWEST_PRIO+1];

程序中的如下语句表示指针的赋值:

OSTCBPrioTbl[prio]=(OS_TCB *)0;

该语句表示给任务优先级别表的当前优先级元素赋值,所赋值是一个指针类型。其中,(OS_TCB *)0表示的意思和NULL差不多,只不过用了C语言的强制类型转换,把空指针转换成了OS_TCB类型。使用了指针后,任务控制块可以离散地分布在内存中,也可以根据当前的运行任务数,灵活地申请新块和退回不使用的块。