union联合体与字节序

本文介绍了C++中的union联合体及其特性,强调了所有数据成员共享内存空间的特点。同时,详细阐述了字节序的概念,包括大端字节序(网络字节序)和小端字节序(主机字节序),并讨论了在网络通信中如何处理字节序问题。
摘要由CSDN通过智能技术生成

union联合体与字节序

1.union联合体
union{
   short value;
   char union_bytes[sizeof(short)];
}test;
  • union联合体所有数据成员共享一段内存,后写入的成员数据将覆盖之前的成员数据,成员数据都有相同的首地址。
  • 上述代码段的short型数据与char型数组在同一地址空间。
2.字节序
  • 大端字节序(big endian):指一个整数的高位字节(23 ~ 31bit)存储在内存的低地址处,低位字节(0 ~ 7bit)存储在内存的高地址处。

  • 小端字节序(little endian):指整数的高位字节存储在内存的高地址处,而低位字节存储在内存的低地址处。

  • 大端字节序又称网络字节序,小端字节序又称主机字节序
  • 在网络的端到端通信中,发送端总是把要发送的数据转化为大端字节序(网络字节序)数据后再发送,而接收端知道发送端总是发送的大端字节序,便可以根据自身采用的字节序决定是否对接收到的数据进行转换(小端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值