参考书:C语言的495问题
编程语言:C语言
问:一些结构声明中的这些冒号和数据是什么意思?
图一
这是位域( bitfield )。数字表示该位域用位计量的准确大小。
使用位域可以在很多二进制标志和其他小成员的结构中节省存储空间。也可以用于满足外部要求的存储布局。
注意:用冒号指定二进制大小的方法只适用于结构(和联合)的成员,不能用这种方法为任意变量指定大小。
例:
在图一中的 int 类型变量 refcount分配了4位,(即4位二进制,因为是有符合数,所以最高位为符号位,可表示范围是 -8~7)
图二
当我们给refcount 赋值大于7 或者 小于-8 时,编译器会报错。