#include <stdio.h>
/*
C 语言提供了 Union 结构,用来自定义可以灵活变更的数据结构。
它内部可以包含各种属性,但同一时间只能有一个属性,
因为所有属性都保存在同一个内存地址,
后面写入的属性会覆盖前面的属性。这样做的最大好处是节省空间。
它将一段内存空间,重用于不同类型的数据。
*/
union quantity
{
short count;
float weight;
float volume;
};
int main(void)
{
// 写法一
union quantity q1;
q1.count = 4;
q1.weight = 0.5;
// q.weight赋值后,原先的q.count的属性就不再有效了
printf("%d\n", q1.count);
printf("%f\n", q1.weight);
// 写法二
union quantity q2 = {.count = 4};
// 写法三:不指定属性名,会赋值给第一个属性
union quantity q3 = {4};
return 0;
}