OSRdyTbl 数组位操作:清除指定位置的位
这行代码是将 OSRdyTbl 数组中下标为 y_old 的元素与 ~(bitx_old) 按位取反的结果进行按位与操作,并将结果赋值给 OS_PRIO 类型的变量。该操作的作用是将 OSRdyTbl 数组中下标为 y_old 的元素中对应的位清零。
具体解释如下:
OSRdyTbl[y_old]:表示 OSRdyTbl 数组中下标为 y_old 的元素。~bitx_old:表示对 bitx_old 进行按位取反操作。&=:表示按位与赋值操作,即先进行按位与操作,并将结果赋值给左侧操作数。
通过按位取反操作,可以将 bitx_old 中对应位的 1 变为 0,0 变为 1。然后,将该结果与 OSRdyTbl[y_old] 进行按位与操作,将 OSRdyTbl[y_old] 中对应位的 1 清零。
例如,假设 bitx_old 为 0x01,则 ~bitx_old 为 0xFE,与 OSRdyTbl[y_old] 进行按位与操作后,OSRdyTbl[y_old] 中对应 bitx_old 位的 1 将被清零。
该操作通常用于清除某个变量中特定位的标志,例如将某个任务从就绪状态变为非就绪状态。
原文地址: http://www.cveoy.top/t/topic/mLHC 著作权归作者所有。请勿转载和采集!