2. 联合和结构一样,联合(union)也可以有一个或多个成员,每个成员的类型也可以不相同。但是,编译器只为联合中最大的成员分配足够的内存空间。联合成员在这个空间中彼此覆盖。
联合的定义和结构类似:
union datetype {
   int i;
   float f;
   double d;
};
测试代码:
union datetype dt;
dt.i = 100;
printf("i=%d\n",dt.i);
dt.f = 3.14;
printf("i=%d\n",dt.i);
printf("f=%f\n",dt.f);
运行结果:
i=100
i=1078523331
f=3.140000
从运行结果,我们可以看出,当我们为f赋值值i的值被覆盖。

由于联合的使用并不多见,这里不再赘述。

该博客教程视频地址:http://geek99.com/node/1020

原文出处:http://geek99.com/node/877#