大小端判断:
#include <stdio.h>
int is_little_endian(void)
{
unsigned short flag = 0x1234;
if(*(unsigned char *)&flag == 0x34)
return 1;
else
return 0;
}
int main(int argc, char* argv[])
{
union endian_un
{
short var;
char bits[sizeof(short)];
};
union endian_un flag;
flag.var = 0x0102;
if(sizeof(short) == 2)
{
if(flag.bits[0] == 1 && flag.bits[1] == 2)
printf("Judged by the first method,big_endian\n");
else if(flag.bits[0] == 2 && flag.bits[1] == 1)
printf("Judged by the first method,little_endian\n");
else
printf("Cann't judged the digtal\n");
}
if(is_little_endian())
printf("Juged by the second method ,little_endian\n");
else
printf("Juged by the second method,big_endian\n");
return 0;
}
浙公网安备 33010602011771号