[Union]C语言编程中联合Union的学习
2015-07-11 00:18
363 查看
问题描述:联合形式和结构相似,但是只给联合中最大的成员分配足够的内存空间,联合成员在这个空间可以被彼此覆盖。
Union:利用联合的特性,可以实现一些可能需要指针操作的功能。比如将一个四字节float型数值的内存存入一个4个元素的字节数组:
union {
float i;
charbyte_array[4];
}u;
u.i = 31.5;
然后读取byte_array[]的内容就是刚存入的float型数值的内存的内容了。
Union的声明:与struct一样,可以
typedef union{
float i;
charbyte_array[4];
}u;
u u1,u2;
和
union u{
float i;
charbyte_array[4];
};
union u u1,u2;
union之间也可以用=赋值,与struct一样。
Union的初始化:与struct一样,可以直接初始化,也可以指定初始化,但由于联合的特性,只能也只需初始化一个成员。
Union:利用联合的特性,可以实现一些可能需要指针操作的功能。比如将一个四字节float型数值的内存存入一个4个元素的字节数组:
union {
float i;
charbyte_array[4];
}u;
u.i = 31.5;
然后读取byte_array[]的内容就是刚存入的float型数值的内存的内容了。
Union的声明:与struct一样,可以
typedef union{
float i;
charbyte_array[4];
}u;
u u1,u2;
和
union u{
float i;
charbyte_array[4];
};
union u u1,u2;
union之间也可以用=赋值,与struct一样。
Union的初始化:与struct一样,可以直接初始化,也可以指定初始化,但由于联合的特性,只能也只需初始化一个成员。
相关文章推荐
- [SwitchCase]C语言编程switch case的使用
- [struct]C语言编程结构体的学习
- [Embedded_SW_模块化]嵌入式C语言工程文件组织_保持更新
- C语言 @property和@synthesize搭配使用声明和实现getter和setter方法
- C语言 点语法的总结
- C++之IO格式控制
- C++之IO格式控制
- chunkAnalyse:C++下读取指定文件下的指定文件或文件
- C语言 宏的概念和使用总结
- java的引用和C++的指针有什么区别
- C/C++ 基本类型数据的数值范围
- 编程思想之多线程与多进程(4)——C++中的多线程
- c语言推断数是否是素数
- C++运算符重载(友元函数方式)
- 为什么C++中空类和空结构体大小为1?
- C++运算符重载(成员函数方式)
- 集合的位图表示(C语言描述)
- c++ primer读书笔记-第十二章 类
- C语言 printf
- C/C++头文件一览