C语言结构位域

位域

位域 就是在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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言的共用体(Union)和位域(Bit-Field)是用来优化内存使用和灵活操作数据的工具。 共用体是一种特殊的数据类型,它允许不同的变量共享同一块内存空间。共用体的成员变量共享同一内存,占用内存大小等于最大成员的大小。通过修改共用体的一个成员变量的值,可以影响到其他成员变量的值。共用体适用于在不同的数据类型之间进行转换或者存储占用内存大小不定的数据。 位域是一种特殊的结构体成员变量,可以指定成员变量占用的位数,从而实现对内存空间的灵活利用。位域的成员变量必须是整型数据类型,并且位域的大小不能超过该整型类型的大小。位域可以用于减小数据结构占用的内存大小,以及进行数据的位操作。 共用体和位域结构体可以一起使用。通过在位域结构体定义共用体成员变量,可以实现对内存的灵活使用和数据的高效操作。共用体可以用于存储不同类型的数据,而位域可以用于压缩数据的存储空间。这种结合使用的方式可以为我们的程序带来更加高效和节省内存的特点。 总结起来,C语言的共用体和位域结构体提供了一种优化内存使用和操作数据的方式。它们可以灵活地对内存空间进行利用,并且能够高效地操作数据。通过合理的使用共用体和位域结构体,我们可以达到节省内存和提高程序执行效率的目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值