众所周知,union内的数据成员共享同一内存,那么具体到底用来干嘛呢?
-
union foo {
-
short i;
-
char j[sizeof(short)];
-
}un ;
-
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
具体是上面哪种形式呢?看你的机器是小端还是大端的。反正是上面的一种。
阅读(1930) | 评论(1) | 转发(0) |