union TEST
{
int i;
short s[2];
char c[4];
};- 所有成员公用一块内存
- Union所占内容尺寸为最大成员的size
- 一般为小端模式存放
例子1:
TEST t;
t.i = 0x01;
的内存映射为:
| 变量 | offset=0 | offset=1 | offset=2 | offset=3 |
| i | 0x01 | |||
| s | 0x01 | 0x00 | ||
| c | 0x01 | 0x00 | 0x00 | 0x00 |
例子2:
TEST t;
t.i = 0x11223344;
的内存映射为:
| 变量 | offset=0 | offset=1 | offset=2 | offset=3 |
| i | 0x11223344 | |||
| s | 0x3344 | 0x1122 | ||
| c | 0x44 | 0x33 | 0x22 | 0x11 |

本文介绍了C语言中联合体(union)的数据结构特性及其内存布局方式。通过两个具体示例展示了不同大小的数据类型在同一块内存区域中的存储情况,并解释了小端模式下数据是如何被存放的。
4632

被折叠的 条评论
为什么被折叠?



