打印

请教一个UCOS里看到的结构体指针的问题?

[复制链接]
2737|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm8s|  楼主 | 2011-7-20 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一个UCOS的结构指针的问题?

(OS_TCB *)0 和 (OS_TCB *)1 分别是什么意思
沙发
香水城| | 2011-7-20 10:28 | 只看该作者
把0和1分别变为指向OS_TCB的指针。

使用特权

评论回复
板凳
stm8s|  楼主 | 2011-7-20 10:45 | 只看该作者
定义(OS_TCB *) a;  表示 a是指向OS_TCB 结构体的指针,但是只定义没是赋值,编译的时候不会分配内存空间;

(OS_TCB *) a; OS_TCB b;
a = b;              这样就有分配空间了.

(OS_TCB *)1 1是指向OS_TCB 结构体的指针, 那它的地址是什么,结构体的值是什么;

使用特权

评论回复
地板
stm8s|  楼主 | 2011-7-20 11:23 | 只看该作者
if (OSTCBPrioTbl[prio] == (OS_TCB *)0) { /* Make sure task doesn't already exist at this priority  */
        OSTCBPrioTbl[prio] = (OS_TCB *)1;    /* Reserve the priority to prevent others from doing ...  */

看看这两句;这两句是如何实现功能的.

使用特权

评论回复
5
jinsem| | 2012-3-8 17:44 | 只看该作者
学习了

使用特权

评论回复
6
纯爷们518| | 2012-8-21 09:08 | 只看该作者
学习了

使用特权

评论回复
7
cool_coder| | 2012-8-21 14:02 | 只看该作者
(OS_TCB *)0相当于定义了一个 (OS_TCB *)类型的空指针,用它赋给OSTCBPrioTbl[prio]表示该项为空(未被占用);相反(OS_TCB *)1表示一个非空指针,但它并不指向某个已经存在的结构体实例,而只是一个符号,用它赋给OSTCBPrioTbl[prio]表示该项是保留的(准备另作它用),不要占用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

粉丝