先放代码:
int check() { union { unsigned int a; unsigned char b; }c; c.a = 1; return 1 == c.b; }
再说原理:
上述程序,如果返回值为1则是小端,如果是0则大端,因为union类型共用一段内存,所以c占4个字节(假设是32位机器),把1赋给a,如果是小端则1会存放在低位,则取出b也是1,反之若是大端则1存放在高位,b即为0.
时间: 2024-10-09 17:36:05
先放代码:
int check() { union { unsigned int a; unsigned char b; }c; c.a = 1; return 1 == c.b; }
再说原理:
上述程序,如果返回值为1则是小端,如果是0则大端,因为union类型共用一段内存,所以c占4个字节(假设是32位机器),把1赋给a,如果是小端则1会存放在低位,则取出b也是1,反之若是大端则1存放在高位,b即为0.