在UCOS2中 将任务从就绪表中注销有这样几条语句:
if((OSRdyTbl[prio >> 3]&= - OSMapTbl[prio&0x07])==0)
OSRdyGrp&= - OSMapTbl[prio >> 3];
注销意思就是将就绪表中prio对应位置置零,它运用的事位图方法,if()里面的内容我们知道不是赋值语句,程序不是应该把OSRdyTbl[prio >> 3]中的对应位置零吗?怎么它只是把对应的组置零?
OSRdyTbl[prio >> 3]&= ~ OSMapTbl[prio&0x07]这个就是赋值语句啊