一般来说,在windows下的内存布局是小端,UNIX下的内存布局是大端。
比如对于0x12345678,windows下内存排列为[12] [34] [56] [78],地址位由高到低,为小端;UNIX下内存排列为[78] [56] [34] [12],地址位由低到高,为大端
C代码测试如下;
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
union little
{
int a;
char b[4];
}c;
c.a = 0x12345678;
if(c.b[0] == 0x12)
{
printf("Big endian!\n");
}
else if(c.b[0] == 0x78)
{
printf("Little endian!\n");
}
return 0;
}