首页 新闻 会员 周边

C中的联合(union)类型用于什么场合啊?

0
悬赏园豆:5 [已解决问题] 解决于 2013-07-19 08:59

它和结构类型唯一不同的是 联合类型成员共享内存空间,以占用内存最大长度的成员空间作为整个联合类型的空间。。

 

但是像下边这样的情况。。

union Data
    {
          int a;
          char b;
          int c[4]
          };

data的空间是4,分别给a,b赋值后,打印出来。。会发现a的值和所赋的不一样。。

如下图:

 

 

所以我弄不懂union用在什么情况下。。开发中用得多吗?

附代码以供测试

 

 union Data 
    {
          int a;
          char b;
          int c[4]
          };

int main()
{
   union Data testData;
   testData.a=0x4533;
   printf("a=%x\n",testData.a);
   printf("a address=%p\n",&testData.a);
   testData.b=0x61;
   printf("b=%c\n",testData.b);
   printf("b address=%p\n",&testData.b);
   printf("a=%x\n",testData.a);
         
   system("pause");   
    }
hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2013-07-09 23:13
< >
分享
最佳答案
0

推荐一篇博文:C中的union和struct的区别

收获园豆:5
dudu | 高人七级 |园豆:30994 | 2013-07-10 08:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册