The differecne between union & struct
1. union 的存储区是连续共用的,大小为最大属性字段所需存储空间的大小,所有字段共享这存储空间,每一次改写将覆盖所有字段的内容
2.struct 的存储区不一定是连续的,每个字段都有自已的存储空间,对任何字段的赋值改写都不影响其它字段
3.发明union的必要性:
I. 给CPU的ax寄存器赋值
union ax_register{
int i; //4bytes
unsigned short ah //2bytes , 高位
unsigned short al //2bytes, 低位
} ax_reg; //给它赋一个整数值就可以同时给高位和低位赋值,对频繁的读写效率将提高一倍
II. 给IP地址赋值
unions IP_addr{
int i; //4 bytes
unsigned char first_number; //可以用数字或对应的ASII对其赋值
unsigned char second;
unsigned char third;
unsigned char forth;
} IP_addr; //一个16进制的数 0XC0A80101就可以赋上:192.168.1.1的IP地址值