6

在此链接上,我遇到了 http://lxr.linux.no/#linux+v2.6.36/include/linux/pci.h#L299 整数声明 unsigned int is_added:1;我已经制作了 C 程序并在其中声明了整数,但在上面我看到使用 : 那是什么语法?

4

5 回答 5

9

我想你遇到了一个位域:)

于 2010-11-23T07:01:15.800 回答
3

它是 a 的一部分struct,这意味着它表明该字段应该只使用一定数量的位而不是整个字节或更多。

于 2010-11-23T07:01:58.680 回答
3

这是数组中的位字段声明。数字后“:”表示分配给结构的这个特定字段的位数。

尽管您需要小心位域,因为它们的二进制表示不可移植。也就是说,您在使用不同编译器编译的接口之间传递二进制 blob,它可能不起作用。

于 2010-11-23T09:01:29.537 回答
1

这表明将只使用其中的一位。

于 2010-11-23T07:03:40.190 回答
0

structs 中,一个整数变量可以占据 1 到 31 之间的任意位数。is_added就是这样的一位变量。一位变量也称为标志。

于 2010-11-23T07:04:04.847 回答