1.测试编辑器属哪种模式
下面这段代码可以用来测试一下你的编译器是大端模式还是小端模式:
short int x;
char x0,x1;
x=0x1122;
x0=((char*)&x)[0]; //低地址单元
x1=((char*)&x)[1]; //高地址单元
若x0=0x11,则是大端; 若x0=0x22,则是小端......
上面的程序还可以看出,数据寻址时,用的是低位字节的地址。
short int x;
char x0, x1;
x = 0x1122;
x0 = ((char*)&x)[0]; // 低地址单元
x1 = ((char*)&x)[1]; // 高地址单元
printf("x0 = 0x%x, x1 = 0x%x /n", x0, x1); // x0 = 0x22, x1 = 0x11
输出:x0 = 0x22, x1 = 0x11
则表示当前编译器使用的是小端模式
2.使用C语言判断处理器的大小端
int checkCPU()
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
printf("checkCPU:%d/n", checkCPU()); // Output "checkCPU:1"
输出:checkCPU:1
表示处理器为小端模式