C语言中关于联合体的数据存放问题

发布网友 发布时间:2022-04-24 16:30

我来回答

1个回答

热心网友 时间:2023-10-22 18:08

联合体内,成员变量共享内存。

现在联合体内,有2个成员,一个是 y ( 需要4字节存放),另一个是结构体x,
x 正好需要 4 字节存放。所以这个联合体大小只 需要 4 字节内存 就够了。
(1个字节描述1个8位2进制数, 1 byte = 8 bits, 字节,是计算机内存 基本单位。)

主程序给 y 赋值 0x11223344 (16进制),正好放满4字节,4个字节内容 是 11,22,33,44。

结构体x 共享这4个字节里的内存。x.low 用了前2个字节, x.high 用了后2个字节,所以 x.low=0x1122,
x.high = 0x3344.

于是 num.x.low+num.x.high = 0x1122 + 0x3344 = 0x4466.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com