从零开始的联合

联合

关键字:union,语法与struct样,区别是所有成员共用一块存储空间。
当给其中一个成员赋值时,其它成员的值也会发生变化。
使用union判断系统是大端还是小端。
int num = 0x01020304;
0xe1e2e3e4 <=> &num

低位地址存储低位数据-小端。
0xe1e2e3e4 = 0x04
0xe1e2e3e5 = 0x03
0xe1e2e3e6 = 0x02
0xe1e2e3e7 = 0x01

低位地址存储高位数据-大端。
0xe1e2e3e4 = 0x01
0xe1e2e3e5 = 0x02
0xe1e2e3e6 = 0x03
0xe1e2e3e7 = 0x04
一般的个人计算机都是小端系统,而大型的服务器(网络设备)采用的是大端,所谓的网络字节序也是大端。
注意:联合没有对齐(天然对齐的),但有补齐,总字节数必须是它最大成员的整数倍。

猜你喜欢

转载自blog.csdn.net/weixin_45050225/article/details/98655820
今日推荐