共用体(union)是一种数据格式,能存储不同的数据类型,但只能同时存储其中的一种类型。
例:
union one4all
{
int in_val;
long long_val;
double double_val;
};
定义一个one4all共用体的变量pair后,pair却只能使用其中一个变量。由于共用体每次只能存储一个值,所以他必须有足够的空间来存储最大的成员,所以共用体的长度就是其最大成员的长度。
用途之一:当数据项使用2种或者更多种格式(但不会同时使用)时,可节省空间。
匿名公用体没有名称,其成员将成为位于相同地址处的变量,显然,每次只有一个成员是当前的成员。
struct wiwi
{
char brand[20];
int type;
union
{
long id_num;
char id_char[20];
}
}
定义一个wiwi结构体的变量prize,id_num和id_char[20]可以作为prize的2个成员。地址相同,却不能同时使用。