Chinaunix首页 | 论坛 | 博客
  • 博客访问: 212836
  • 博文数量: 30
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-07 18:15
个人简介

程序员一个。14年毕业。

文章分类

全部博文(30)

文章存档

2014年(13)

2013年(17)

我的朋友

分类: LINUX

2013-08-14 23:01:15

众所周知,union内的数据成员共享同一内存,那么具体到底用来干嘛呢?



点击(此处)折叠或打开

  1. union foo {
  2. short i;
  3. char j[sizeof(short)];
  4. }un ;
  5. un.i=0x0102 //0x表示 16进制,2字节大小换算成2进制,B 0001 0010

我们可以看到,我只对un中的i赋值了,但是由于共享内存的缘故,数组j中是由数据的。
j[0]=1,j[1]=2或者j[0]=2,j[1]=1
具体是上面哪种形式呢?看你的机器是小端还是大端的。反正是上面的一种。

阅读(1883) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~