L,wang

坚持改革,开放人性的弱点……
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地址值

 

 

posted on 2013-04-06 12:14  L,wang  阅读(196)  评论(0编辑  收藏  举报