联合(union)用得很少。是这样的:几个不同数据类型共用同一段内存的结构,称为联合。举个例子:
union
{
int i;
char ch;
float f;
}
这个联合结构有三个元素对吧,一般来说不同的变量存在不同的内存,但联合中的这三个变量就存在同一段内存,只是在固定的某时刻,这个内存中只有这三个元素的其中一个元素存在,说到底是省了内存空间,比如,这个联合结构,就只占(sizeof(float))8个字节,就是元素中占最大空间的元素所占空间的大小。而你看结构体(struct)
struct
{
int i;
char ch;
float f;
}
他占的空间大小就应该是三个元素所占空间的总和(sizeof(int)+sizeof(char)+sizeof(float));
union
{
int i;
char ch;
float f;
}
这个联合结构有三个元素对吧,一般来说不同的变量存在不同的内存,但联合中的这三个变量就存在同一段内存,只是在固定的某时刻,这个内存中只有这三个元素的其中一个元素存在,说到底是省了内存空间,比如,这个联合结构,就只占(sizeof(float))8个字节,就是元素中占最大空间的元素所占空间的大小。而你看结构体(struct)
struct
{
int i;
char ch;
float f;
}
他占的空间大小就应该是三个元素所占空间的总和(sizeof(int)+sizeof(char)+sizeof(float));