int test() {
union {
int a;
char b;
}t;
t.a = 1;
return t.b;
}
int main() {
printf("%s\n", test ? "小端" : "大端");
return 0;
}
1. t 是共用体,将整形t.a的值赋为 1 此时 四个字节中的低位就为1,便只有一下两种情况:
case 1:小端字节序
地位在低地址,高位在高地址,此时我们t.b 即为真
case 2:大端字节序
低位在高地址,高位在低地址,此时我们t.b 即为假
我们直接返回字符t.b,由于是字符类型 所以只能拿到地址的第一个字节。
若为真即是小端,假则为大端。