完成用联合体(共用体)的方式验证计算机是大端还是小端:
#include <stdio.h>
union A
{
unsigned int a;
};
int main(int argc, const char *argv[])
{
union A S;
char *str;
S.a = 0x1234;
str = (char *)&S.a;
printf("%x\n", *str);
if(0x34 == *(str))
{
printf("little - endin\n");
}
else if(0x12 == *(str))
{
printf("big - endin\n");
}
return 0;
}
输出结果:
ubuntu@ubuntu:Day1$ gcc 1h.c
ubuntu@ubuntu:Day1$ ./a.out
34
little - endin