(base->MFSR & LPI2C_MFSR_RXCOUNT_MASK) >> LPI2C_MFSR_RXCOUNT_SHIFT 这句代码操作符的优先级是怎么排序的
时间: 2023-08-06 10:07:14 浏览: 45
在这个表达式中,操作符的优先级如下:
1. -> (成员选择符)
2. & (按位与)
3. >> (右移位)
4. & (按位与)
5. () (括号)
根据这个优先级,代码的执行顺序如下:
1. 首先,执行 base->MFSR,使用成员选择符 -> 获取 base 对象的成员变量 MFSR 的值。
2. 接下来,执行 LPI2C_MFSR_RXCOUNT_MASK & base->MFSR,使用按位与 & 运算符将 LPI2C_MFSR_RXCOUNT_MASK 和 base->MFSR 进行按位与操作。
3. 继续执行 (LPI2C_MFSR_RXCOUNT_MASK & base->MFSR) >> LPI2C_MFSR_RXCOUNT_SHIFT,使用右移位 >> 运算符将前面的结果右移 LPI2C_MFSR_RXCOUNT_SHIFT 位。
请注意,如果有需要,可以使用括号来改变操作符的优先级和执行顺序。