【时时三省】(C语言基础)共用体/联合体

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

共用体

共用体的核心就是

一种数据可能有多种类型

就比如 如果要用一个变量存放钱,钱有很多种类型,可以是10,或者10.5,或者10万,有int型和double型,还有字符型,这个时候就可以用到共用体

他的格式和结构体很像

定义的格式是:

绿色的是这个共用体的名字,可以自定义

使用的格式是:

而且定义共用体的时候,前面也可以加typedef关键字,可以给这个共用体起别名,后面使用的时候就可以直接用别名来定义了

共用体的特点

共用体,也叫联合体,共同体

所有的变量都使用同一个内存空间

所占的内存大小=最大成员的长度(也受内存对齐影响)

(细节:

以最大的单个成员的长度为准

总大小一定是最大成员的整倍数)

每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据

共用体和结构体的区别

结构体:一种事物包含多个属性

共用体:一个属性有多种类型

上面是代码层面的区别

内存里面的区别:

存储方式:

结构体:各存各的

共用体:存一起,多次存会覆盖

内存占用:

结构体:各个变量的总和(受内存对齐影响)

共用体:最大类型(受内存对齐影响)

相关推荐
爱聊灵光的维C5 分钟前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
wuminyu1 小时前
JVM规范学习总结:class执行性能差异
java·linux·c语言·jvm·c++
C++ 老炮儿的技术栈1 小时前
Linux 动态库踩坑:明明重新编译了 .so,调用函数返回值却一直不变(libfjrobot.so 版本号异常排查实录)
linux·c语言·网络·c++·visual studio
小向是个Der10 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
bkspiderx13 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
LDR00618 小时前
LDR6100 智能遥控器精品软文:Type-C 充电口与低功耗量产维护
c语言·开发语言
FLJwu20 小时前
运动相机采购实战|第四篇(终章):一张清单走完选型全流程,把风险拦在源头
c语言·开发语言·数码相机·运动相机·oem 量产
简单电磁炮1 天前
关于can的调试
c语言·stm32·单片机
超级架构师1 天前
让 COBOL 长出 AI 大脑:原生 Agent 核心框架 praxo-core 深度剖析
c语言·开发语言·c++·人工智能·python·架构·ai编程
·present·1 天前
CSAPP(lecture 10)
c语言·c++