方法1:
int main(void)
{
int i = 0x12345678;
if(*((char*)&i) == 0x12)
printf("大端");
else
printf("小端");
return 0;
}
方法2,利用联合:
int is_little_endian_b(void)
{
union endian_un{
short var;
char bits[sizeof(short)];
};
union endian_un flag;
flag.var = 0x0102;
//判断低位和高位的存储内容,确定是何种方式
if(sizeof(short) == 2){
if(flag.bits[0] == 1 && flag.bits[1] == 2)
return 0;
else if(flag.bits[0] == 2 && flag.bits[1] == 1)
return 1;
else
return -1;
}
return -1;
}