找回密码
 注册
查看: 247|回复: 3
打印 上一主题 下一主题

联合体加结构体的方式,这样使用的目的是基于什么考虑的啊?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-12-20 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
请问下在单片机编程中,我看到好多使用联合体加结构体的方式,这样使用的目的是基于什么考虑的啊?- R4 C, F0 ~; J6 S& B

该用户从未签到

2#
发表于 2022-12-20 11:23 | 只看该作者
结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

该用户从未签到

3#
发表于 2022-12-20 13:11 | 只看该作者
结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

该用户从未签到

4#
发表于 2022-12-20 13:40 | 只看该作者
两者联合使用时结构体内定义共用体时,用结构体成员来方便引用共用体成员,8 P/ o6 C. o8 h, h
尤其单片机编程中的比较多,这样既能用不同数据类型的变量,又能节省空间,一般用作临时变量,无需保存等就可以在结构体中定义共用体,也可以共用体中定义结构体。最终要根据实际情况来定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-5-30 09:34 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表