#include <stdio.h>
int main(){
union{
unsigned short a;
char b;
}c;
c.a=0x0100;
printf("%d",c.b==1);
return 0;
}
这里利用了union这个结构的特性,a和b是共用同一块储存区的,c的大小取决于内部元素的数据类型最大的那个,这里char b占一个字节,而unsigned short a 占2个字节,所以c就占2个字节。当读取c.a时,就是将2个字节的内容都读取,但读取c.b时,因为b只有一个字节,所以会从高位读取1个字节,而将低位舍去,这样就可以利用b的值来判断字节的顺序了。