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

我们知道联合体中不能同时访问成员变量,上图中给定了int类型的值,没有给定结构体的值,怎么可以通过给定的int的值访问,结构体中unsignedshort类型的low和h... 我们知道联合体中不能同时访问成员变量,上图中给定了int类型的值,没有给定结构体的值, 怎么可以通过给定的int的值访问,结构体中unsigned short 类型的low和high的值,我看的视频中 提到了一个什么字节存放问题 我表示看不懂 求高人解 谢谢! 展开
 我来答
金色潜鸟
2013-05-09 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5746万
展开全部
联合体内,成员变量共享内存。

现在联合体内,有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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式