union
是很少见的一种数据格式,接触c以来,真的很少用到,而在最近的工作项目中,需要调试一款陀螺仪,
而在其stm324xx系列的SDK源码中,发现在使用union
,好奇之下,翻了翻《C++PrimerPlus》
,大致了解到这种
数据格式,记录如下
一、什么是共用体?
它是一种特殊的数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型,也就是说:
- 结构可以同时存储
int、long
和double
- 共用体的句法与结构相似,但含义不同
- 共同体的长度为其最大成员的长度
union one4all
{
int int_val;
long long_val;
double double_val;
};
可以使用one4all
变量来存储int、long
和double
,条件是在不同的时间进行:
one4all pail;
pail.int_val = 15; //store an int
cout << pail.int_val;
pail.double_val = 1.38;
cout << pail.double_val; //store a double, int value is lost
因此pail
有时可以是 int
变量,有时又可以是