您的位置:首页 > 编程语言 > C语言/C++

C语言结构位域

2016-04-29 12:04 302 查看

位域

位域 就是在C语言结构体中,节约内存而使用的一种方法。这种方法可以明确你使用内存空间的位数,以达到解决内存的目的。

//安位数重叠 2 + 4 + 6 = 12位, 两个字节为16位,所以两个字节就可以存储了,但类型是int型,在64位系统中,int是4个字节,4*8=32位.
struct MyStruct{
int a : 2;//
int b : 4;
int c : 6;
};
//下方的结构体位数是30+4 = 34位,按int 类型重叠,一个int类型为4个字节32位,所以需要两个int类型的存储空间,所以总共的位数是8位。
struct MyStruct1{
int a : 30;//
int b : 4;
};


在位域的存储过程中,不能够产生越位溢出。如果溢出,那么将自动截取

当位数为1时,那么它表示的取值范围0-1

当它赋值为2时,2的二进制表示1 0,那么自动截取后面的一位,得0

当它赋值为3时,2的二进制表示1 1,那么自动截取后面的一位,得1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: