问题描述:联合形式和结构相似,但是只给联合中最大的成员分配足够的内存空间,联合成员在这个空间可以被彼此覆盖。
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一样,可以直接初始化,也可以指定初始化,但由于联合的特性,只能也只需初始化一个成员。