当前位置 :
【uc/os-ii的OSTimeTick()函数中使各任务控制块中的OSTCBDly减1的代码是哪条?对OSTCBDly操作只看到这一条"if(--ptcb->OSTCBDly==0)",这也只是在if条件里面自减啊,难道自减后的值会保存到ptcb->OSTCBDly里】
更新时间: 2025-08-28 08:45:28
1人问答
问题描述:

uc/os-ii的OSTimeTick()函数中使各任务控制块中的OSTCBDly减1的代码是哪条?

对OSTCBDly操作只看到这一条"if(--ptcb->OSTCBDly==0)",这也只是在if条件里面自减啊,难道自减后的值会保存到ptcb->OSTCBDly里面?想不明白,请高手指教

蔡建宇回答:
  --和->都为单目运算,C语言中虽然--和->优先级相同,但是单目运算运算是从右到左,故"--ptcb->OSTCBDly==0“等价于"--(ptcb->OSTCBDly)".所以先运算ptcb->OSTCBDly(即取ptcb指向的任务控制块的OSTCBDly值),再进行--(ptcb->OSTCBDly)运算(即将即取ptcb指向的任务控制块的OSTCBDly的值减1).因为并没有创建ptcb->OSTCBDly的副本,所以ptcb指向的任务控制块的OSTCBDly减1后的值肯定会保存在ptcb指向的任务控制块中.
最新更新
优秀其它推荐
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有