Little-endian模式CPU对操作数的存储方式是从低地址存低位数据。而Big-endian模式CPU对操作数的存储方式是低地址存高位数据。利用union的特性,可以判断出处理器的存储方式。代码如下:
#include <stdio.h>
int main(){
// 联合体union的存放顺序时所有成员都从低地址开始存放
union un
{
int a;
char c; // c 代表a的低地址
} u;
u.a = 1;
if(u.c == 1){ // 如果u.c == 1 说明 int的低地址存放的低位。说明是小端
printf("little endian\n");
} else {
printf("bit endian\n");
}
return 0;
}