通过程序给出两种实现方法:
1:普通判断
#include<stdio.h>
int main(){
int a = 0x04030201;
char* s = (char*)&a;
printf("s=%x,a=%x,sizeof(int)=%d\n",s,&a,sizeof(int));
if((int)s[0] == 1)
{
printf("small end!!!\n");
}
else
{
printf("large end!!!\n");
}
printf("%d\n",s[0]);
return 0;
}
2:通过联合体
#include <stdio.h>
int main()
{
union check
{
int a;
char b[2];
}s;
s.a=0x1234;
printf("数据在内存中:\n");
printf("变量:%8s\t%8s\t%8s\n","s.b[0]","s.b[1]","s.a");
printf("地址:%8p\t%8p\t%8p\n",&s.b[0],&s.b[1],&s.a);
printf("数据:%8x\t%8x\t%8x\n",s.b[0],s.b[1],s.a);
if(s.b[0]==0x12)
printf("大端模式\n");
else
printf("小端模式\n");
return 0;
}