我正在浏览Linux内核代码,在file hid.h
中,HID_QUIRK_ALWAYS_POLL
宏定义为:
#define HID_QUIRK_ALWAYS_POLL BIT(10)
BIT(10)
的含义是什么?我对C
并不熟悉,但据我所知(并研究过),没有这样的位操作功能。
答案 0 :(得分:6)
看起来你可以在包含的第一个头文件中找到答案,即bitops.h!
#define BIT(nr) (1UL << (nr))
即。 BIT
定义了指定位数的位掩码,从0(最低有效位或最右位)到无符号长整数。
因此BIT(10)
应评估为1024的数值(即1 << 10
)。
答案 1 :(得分:3)
BIT是内核树中include/linux/bitops.h
中定义的宏:
#define BIT(nr) (1UL << (nr))
所以BIT(10)基本上是一个无符号长整数,第十位设置。
答案 2 :(得分:0)
BIT
宏会将值1
向左移动给定的值,因此BIT(10)
== (1 << (10))
。它可用于从位字段获取特定的布尔值。