不同的cpu存储方式也是不同,我们常见的x86就是小端模式,而有些arm则是大端模式。

大小端排序是针对字节之间的排序关系,而字节内部顺序是不变的。

小端:低字节排在内存的低地址,高字节排在内存的高地址

大端:高字节排在内存的低地址,低字节排在内存的高地址

例如:int a=0x12345678

小端模式存储:

内存0x0000000x0000010x0000020x000003
数据0x120x340x560x78

大端模式存储:

内存0x0000000x0000010x0000020x000003
数据0x780x560x340x12

联合体是公用内存,内部数据则是从低地址排序。

如果判断系统大小端即可方便使用联合体验证

typedef union   
{  char a;  int c;  
}Test;  int check()  //1--小端  0---大端
{  Test t;  t.c=1;  if(t.a==1)return 1;elsereturn 0;  
}