定义:共用体和结构体类似,也是一种构造类型的数据结构,在进行某些算法时,需要使用几种不同类型的变量存到同一段内存单元中,几个变量所使用空间相互重叠,这几个不同的变量共同占用一段内存的结构,被称作共用体类型结构。
共用体的大小是其占内存长度最大的成员的大小,共用体所有成员占用同一段地址空间。
typedef union data {
short int i;
char ch;
float f;
} DATA;
DATA temp2;
typedef union sensor_mode {
int32_t word;
struct {
uint32_t sensorS1 : 1;
uint32_t sensorS2 : 1;
uint32_t sensorS3 : 1;
uint32_t sensorS4 : 1;
} bits;
} sensor_mode_t;
union sensor_mode* pSensor;
pSensor->word = i32_value;
ui->para_pud_s1->setChecked(pSensor->bits.sensorS1);
ui->para_pud_s2->setChecked(pSensor->bits.sensorS2);
ui->para_pud_s3->setChecked(pSensor->bits.sensorS3);
ui->para_pud_s4->setChecked(pSensor->bits.sensorS4);
特点:
typedef union data {
unsigned char a;
unsigned int b;
}DATA ;
DATA temp;
temp.b=0xffffffff;
printf("temp.b=%x\n", temp.b);//temp.b=ffffffff
printf("temp.a=%x\n", temp.a); //temp.a = ff
temp.a = 0x55;
printf("temp.b=%x\n", temp.b);//temp.b=ffffff55
printf("temp.a=%x\n", temp.a); //temp.a=55