1.instance analysis:
#include <stdio.h>
int main()
{
short int x;
char x1,x2;
x = 0x1122;
x1 = ((char *)&x)[0]; //低地址
x2 = ((char *)&x)[1]; //高地址
printf("x1=%x\n",x1);
printf("x2=%x\n",x2);
if(x1 == 0x22)
{
printf("littele ...\n");
}
else
{
printf("Big ...\n");
}
return 0;
}
2.instance analysis3:union 共享内存地址测试:
#include <stdio.h>
union TYPE_
{
short int x;
char x1;
};
int main()
{
union TYPE_ type;
type.x = 0x1122;
type.x1 = ((char *)&type.x)[0]; //低地址
printf("x1=%x\n",type.x1);
if(type.x1 == 0x22)
{
printf("littele ...\n");
}
else
{
printf("Big ...\n");
}
return 0;
}
结果是一样的
3.instance analysis3:
#include <stdio.h>
int main()
{
int x = 1;
char *p = (char *)&x;
if(*p)
{
printf("little\n");
}
else
{
printf("large\n");
}
return 0;
}
3种方法比较,第3种方法比较好,第2种说服力强。