发新帖我要提问
12
返回列表
打印
[牛人杂谈]

C语言中的“结构体”与“联合体”

[复制链接]
楼主: jcky001
手机看帖
扫描二维码
随时随地手机跟帖
21
jonas222| | 2025-6-20 17:10 | 只看该作者 回帖奖励 |倒序浏览
联合体的内存布局和字节序可能因平台或编译器不同而不同,需避免直接依赖具体实现

使用特权

评论回复
22
bartonalfred| | 2025-6-20 17:54 | 只看该作者
支持初始化列表,未显式初始化的成员可能包含随机值。

使用特权

评论回复
23
beacherblack| | 2025-6-20 18:18 | 只看该作者
联合体的所有成员共享同一块内存空间,同一时间只能存储一个成员的值。

使用特权

评论回复
24
gygp| | 2025-6-20 19:26 | 只看该作者
结构体中可定义位段(bitfield),用于节省空间。例如:struct { int a:3; int b:2; }。
位段的内存分配依赖于编译器,可能存在跨平台兼容性问题,且不允许取地址或直接用scanf输入

使用特权

评论回复
25
pixhw| | 2025-6-20 20:22 | 只看该作者
结构体和联合体的成员若未显式初始化,值可能是不确定的,需先赋值再使用

使用特权

评论回复
26
maudlu| | 2025-6-20 20:48 | 只看该作者
联合体的所有成员共享同一块内存空间,因此联合体的大小等于其最大成员的大小。
同一时间只能存储一个成员的值,访问其他成员会导致未定义行为。

使用特权

评论回复
27
kmzuaz| | 2025-6-20 21:10 | 只看该作者
结构体可以包含其他结构体作为成员,形成嵌套结构。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则