关于联合体及联合体嵌套结构体

本文介绍了联合体(union)及其内部嵌套结构体的概念,通过示例展示了如何声明和使用这种数据结构。联合体中的成员共享同一块内存空间,例如,定义了一个16位的联合体Y,其中包含一个1位的A,1位的B和14位的C。在小端结构下,对各成员进行赋值会改变整个联合体的16位值。通过这种机制,可以方便地访问和修改二进制数据的不同部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例:

typedef union {
    uint16_t X;
    struct{
    uint16_t       A  :1; 
    uint16_t       B  :1; 

    uint16_t       C  :14;       

  } Bits;

} Y; 

使用typedef后,Y相当于结构体类型名,可以直接用Y 声明结构体变量。如Y y;

uint16_t       A  :1; 这种定义方式表示A占1位的长度,跟前面的uint16_t没多大关系。同理:B占1位长度,C占14位长度。

小端结构下,A为最低位,依次往上为B、C。

如写

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值