不同处理器体系结构在存储多字节数据时存在大端和小端的问题,如下是一个测试处理器大小端的小程序:
#include<stdio.h>
//返回1表示小端,返回0表示大端
int endian()
{
int i = 0x12345678;
char* ch= (char*)(&i);
if(*ch == 0x78)//低字节在低地址(小端)
return 1;
else
return 0;//低字节在高地址(大端)
}
int main(void)
{
if(endian() == 1) {
printf("小端\n");
} else {
printf("大端\n");
}
}