C专家编程_3.2.2
关于联合
存储一个关于动物种类的信息
struct creature
{
char has_backbone; //有脊椎动物
char has_fur; //毛皮动物
short num_of_legs_in_excess_of_4; //多于4条腿
};
动物分为有脊椎动物,和无脊椎动物;又只有有脊椎动物才有毛皮,无脊椎动物才有可能多于4条腿。这样通过互斥的字段存储于一个联合来节省空间:
union secondary_characteristics
{
char has_fur; //毛皮动物
short num_of_legs_in_excess_of_4; //多于4条腿
};
struct creature
{
char has_backbone; //有脊椎动物
union secondary_characteristics form;
};
这样在一个数据文件中,存储了200 0000个动物,使用这种方法可节约大概20MB的磁盘空间。