共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的`共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。下例表示声明一个共用体foo:
union foo{
int i;
char c;
double k;
};
再用已声明的共用体可定义共用体变量。
例如用上面说明的共用体定义一个名为bar的共用体变量, 可写成: union foo bar;在共用体变量bar中, 整型变量i和字符变量c共用同一内存位置。
当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度。以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。