最近在使用VC++做项目时遇到一个问题,在使用UDP通信时数据量太大导致无法发送,查阅资料后找到了一个使用union来压缩数据的办法。原理就是利用union内部定义的变量地址指向同一块内存,改变其中一个另一个也跟着改变。以下是代码
#include <iostream>
using namespace std;
typedef union Data_send{
int d_send; //压缩后的数据,int型占4字节,32位
struct Data {
//原始数据
//定义占4位的int型数据,也就是只能存贮0000~1111,即-7~7,
int d1 : 4; //d1和d_send的高4位是同一块内存
int d2 : 4;
int d3 : 4;
int d4 : <