uniondata
{inta;
floatb;
doublec;
chard;
}obj;
该形式定义了一个共用体数据类型uniondata,定义了共用体数据类型变量obj。共用体数据类型与结构体在形式上非常相似,但其表示的含义及存储空间是完全不同的。先看一个例子。
【例11.8】
uniondata/*共用体*/
{inta;
floatb;
doublec;
chard;
}mm;
structstud/*结构体*/
{inta;
floatb;
doublec;
chard;
};
main()
{structstudstudent
printf("%d,%d",sizeof(structstud),sizeof(uniondata));
}
运行程序输出:
15,8
程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的共用体类型实际占用存储空间为其最长的成员所占的存储空间。详细说明如图11-3所示。
图11-3
对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。图11-3中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。
上一篇:其他贸易术语的解释
下一篇:人口老龄化的现状和发展趋势