问一个ucos中OSTCBList 的简单问题? 10

在OS_TCBInit函数中有如下语句:if(OSTCBList!=(OS_TCB*)0){OSTCBList->OSTCBPrev=ptcb;}OSTCBList!=(... 在OS_TCBInit函数中有如下语句:
if (OSTCBList != (OS_TCB *)0) {
OSTCBList->OSTCBPrev = ptcb; }
OSTCBList != (OS_TCB *)0这一个条件是否在第一次调用OS_TCBInit函数时是不成立的?也就是说OSTCBList 在开始时一直都是为空指针。不能执行OSTCBList->OSTCBPrev = ptcb这一条语句,但是什么时候它才不为空呢?谢谢了!
展开
 我来答
wonderful_002
2012-04-01
知道答主
回答量:7
采纳率:0%
帮助的人:3.7万
展开全部
OSTCBList 代表的是“指向最后建立的那个OS_TCB控制块的指针”。在初始化的时候即OSInit()中的OS_TCBInit()函数里,有初始化语句 OSTCBList = (OS_TCB *)0;
即刚初始化的时候这里确实是0.第一次IF语句是不成立的。
但是在你这段代码后面UCOS又给了一条语句,那条语句你没写出来。
是OSTCBList = ptcb; 这以后都不为空了啊
匿名用户
2012-10-09
展开全部
我附带问一个跟这个问题密切相关的地方:
ptcb->OSTCBNext = OSTCBList;

ptcb->OSTCBPrev = (OS_TCB *)0;

if (OSTCBList != (OS_TCB *)0) {
OSTCBList->OSTCBPrev = ptcb;
}
OSTCBList = ptcb; // 下面既然有这句,那么上面的If()中不管怎么修改OSTCBList的成员应该都没用啊,求高手解释一下?谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式