int test() { union { int a; char b; }t; t.a = 1; return t.b; } int main() { printf("%sn", test ? "小端" : "大端"); return 0; }
1. t 是共用体,将整形t.a的值赋为 1 此时 四个字节中的低位就为1,便只有一下两种情况:
case 1:小端字节序
地位在低地址,高位在高地址,此时我们t,b 即为真
case 2:大端字节序
低位在高地址,高位在低地址,此时我们t,b 即为真
我们直接返回字符t.b,由于是字符类型 所以只能拿到地址的第一个字节。
若为真即是小端,假则为大端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)