标签:
1 #include <stdio.h> 2 int main(int argc, char **argv) 3 { 4 union{ 5 int a; 6 short b; 7 }u; 8 u.a = 0x12345678; 9 printf("%x\n", u.b); 10 if(u.b == 0x1234) 11 printf("大端"); 12 else if(u.b == 0x5678) 13 printf("小端"); 14 else 15 printf("Error"); 16 return 0; 17 }
这里也重温了C语言中的union这种数据类型。因为根本没用过,所以早已忘了。
这种类型最大的特点是所有成员共享同一块内存空间,编译程序保证分配给联合的内存能够容纳其最大的成员变量。
对其中一个成员赋值时,所有其他成员的值也会被覆盖。当然char类型只会覆盖int类型的部分值。
因此在这里给a赋值时,b的值也变了。而int和short的字节数不同,于是能看出大端小端。
标签:
原文地址:http://www.cnblogs.com/yzbyzz/p/4572661.html