因为公用共享存储空间,所以利用共用体实现类型的转换更加方便和直观。
union uint2uchar{
unsigned int ui;
unsigned char uc[4];
};
void uint2ucharFun(unsigned char *cbuf, unsigned int num){
union uint2uchar x;
x.ui = num;
cbuf[0] = x.uc[0];
cbuf[1] = x.uc[1];
cbuf[2] = x.uc[2];
cbuf[3] = x.uc[3];
}
void uchar2uintFun(unsigned char *cbuf, unsigned int &num){
union uint2uchar x;
x.uc[0] = cbuf[0];
x.uc[1] = cbuf[1];
x.uc[2] = cbuf[2];
x.uc[3] = cbuf[3];
num = x.ui;
}
构建共用体,在利用上述函数则可以很方便实现类型转换,这里只实现了unsigned int 和 unsigned char的转换,其他类型类似,就不一一实现了。