C语言中联合(union)的一个有意思的用途
2018-03-15 22:00
253 查看
联合(union)在许多其他语言中称作变体记录(variant record),在联合中 ,所有的成员都从偏移地址零开始存储,这样,每个成员的位置都会重叠在一起。
按照这种特性,联合可以把同一个数据解释成两种不同的东西,而不是把两个不同的数据解释为同一个东西,该用法的例子如下:
union bits32_tag {
int whole; //一个32位的值
struct { char c0, c1, c2, c3;} byte; //四个八位的字节
} value; 这个联合允许程序员提取整个32位值 (int),也可以提取单独的字节段如 value.byte.c0 等。
例如: value.whole = 0xa0fe728b; 因为所有的成员都从偏移地址零开始存储,则value.byte.c0 = (char)0x8b,其他的以此类推。
按照这种特性,联合可以把同一个数据解释成两种不同的东西,而不是把两个不同的数据解释为同一个东西,该用法的例子如下:
union bits32_tag {
int whole; //一个32位的值
struct { char c0, c1, c2, c3;} byte; //四个八位的字节
} value; 这个联合允许程序员提取整个32位值 (int),也可以提取单独的字节段如 value.byte.c0 等。
例如: value.whole = 0xa0fe728b; 因为所有的成员都从偏移地址零开始存储,则value.byte.c0 = (char)0x8b,其他的以此类推。
相关文章推荐
- [转载] c语言中的结构(struct)和联合(union)简介
- c语言中的结构(struct)和联合(union)简介
- 一个比较有意思的C语言问题
- c语言中的结构(struct)和联合(union)简介
- c语言中的结构(struct)和联合(union)简介
- c语言联合union 的联合变量,联合标记,联合类型定义的区别
- C语言数据类型:联合(union)
- c语言中的结构(struct)和联合(union)
- [Union]C语言编程中联合Union的学习
- c语言中的结构(struct)和联合(union)简介
- C语言数据类型:联合(union)
- C语言中union联合的用法详解
- 利用C语言读文件的一个有意思的小程序
- c语言 结构(struct)和联合(union)简介
- C语言中联合(union)的内存分配
- c语言中的结构(struct)和联合(union)简介
- c语言中的结构(struct)和联合(union)简介
- 一个关于 联合查询union 和排序order by 的例子
- C语言中结构体(struct)和联合(union)的使用
- c语言中的结构(struct)和联合(union)简介