c++共用体

    共用体,用关键字union来定义,它是一种特殊的类。在一个共用体里可以定义多种不同的数据类型,这些数据共享一段内存,在不同的时间里保持不同的数据类型和长度的变量,以达到节省空间的目的。但是同一时间只能存储其中一个成员变量的值。

    可以使用共用体判断系统是大端还是小端。

#include <iostream>

using namespace std;

union Test {
	short a;
	char b[sizeof(a)];
};

int main()
{
	Test test;
	test.a = 0x0102;
	if (test.b[0] == 0x01 && test.b[1] == 0x02)
	{
		cout << "big endian" << endl;
	}
	else if (test.b[0] == 0x02 && test.b[1] == 0x01)
	{
		cout << "small endian" << endl;
	}

	system("pause");
	return 0;
}

其中,big endian是指低地址存放最高有效字节,little endian则是低地址存放最低有效字节。

目前,几乎所有的网络协议都是采用大端的方式来传输数据的,当两台设备采用不同字节序的主机通信时,在发送数据前都必须经过字节序转换成为网络字节序后再进行传播。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值