联合体是一种特殊的类,也是一种构造类型的数据结构。在一个“联合体”内能够定义多种不同的数据类型,这些多种不同的数据,共同拥有同一段内存(重点)。
比如定义联合体:
union UnionFloatChar
{
float fValue;
char buf[4];
};
char数组数据占用的内存与float类型数据占用的同一段大小相等的内存,只是数据类型对外的表达形式不一样而已。
以下使用联合体数据转换示例代码:
UnionFloatChar unionFloatchar;
unionFloatchar.buf[0] = cData[0];
unionFloatchar.buf[1] = cData[1];
unionFloatchar.buf[2] = cData[2];
unionFloatchar.buf[3] = cData[3];
float use = unionFloatInt.fValue;
其他数据类型转换可同理实现。
可查看高层次数据转换方式:利用函数模板进行数据类型转换