#define MS(_v, _f) (((_v) & _f##_MASK) >> _f##_LSB)
这个宏在 drivers/net/wireless/ath/ath10k/core.h
中定义。
最佳答案
_v
给出一个表达式求值为 v 值(寄存器的)和 _f
命名一个f 字段。该宏扩展为一个表达式,该表达式将值与 FIELD_MASK
命名的掩码按位与 (&) , 然后右移 FIELD_LSB
使其右对齐。
换句话说,它解压了一个位域。
关于c - 这个宏做了什么操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22472407/