union类型变量的成员共用同一块内存空间,空间大小是由占用内存空间最大的变量决定的,并且每个成员的首地址是一样的(你可以打印每个成员的首地址试试)。
//诊断结果数据类型
typedef union
{
rt_int16_t I16;
rt_uint8_t UI8; //无符号8位整数
rt_uint8_t Array[4]; //无符号8位整数数组,打包解包时用于存取各基本数据类型
rt_uint16_t UI16; //无符号16位整数
rt_uint32_t UI32; //无符号32位整数
float F; //浮点数
void *vPtr; //指针,VIN,supportPIDS,DTC将来用到缓存指针
}DG_DATA_TYPE;
需要理解每个成员的首地址是一样的,即可(取址注意大小端模式。取决于编译器)