[牛人杂谈] C语言中的“结构体”与“联合体”

[复制链接]
jonas222 发表于 2025-6-20 17:10 | 显示全部楼层
联合体的内存布局和字节序可能因平台或编译器不同而不同,需避免直接依赖具体实现
bartonalfred 发表于 2025-6-20 17:54 | 显示全部楼层
支持初始化列表,未显式初始化的成员可能包含随机值。
beacherblack 发表于 2025-6-20 18:18 | 显示全部楼层
联合体的所有成员共享同一块内存空间,同一时间只能存储一个成员的值。
gygp 发表于 2025-6-20 19:26 | 显示全部楼层
结构体中可定义位段(bitfield),用于节省空间。例如:struct { int a:3; int b:2; }。
位段的内存分配依赖于编译器,可能存在跨平台兼容性问题,且不允许取地址或直接用scanf输入
pixhw 发表于 2025-6-20 20:22 | 显示全部楼层
结构体和联合体的成员若未显式初始化,值可能是不确定的,需先赋值再使用
maudlu 发表于 2025-6-20 20:48 | 显示全部楼层
联合体的所有成员共享同一块内存空间,因此联合体的大小等于其最大成员的大小。
同一时间只能存储一个成员的值,访问其他成员会导致未定义行为。
kmzuaz 发表于 2025-6-20 21:10 | 显示全部楼层
结构体可以包含其他结构体作为成员,形成嵌套结构。
olivem55arlowe 发表于 2025-6-21 05:35 | 显示全部楼层
结构体指针可以用于动态分配内存,使用 malloc 和 free 函数。
gygp 发表于 2025-6-21 10:54 | 显示全部楼层
联合体的所有成员共享同一块内存空间,同一时间只能存储一个成员的值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部