在C语言中结构体是这样定义的:
union struct{
float a;
float b;
int c;
}data_t;
联合体是这样定义的:
union data{
float a;
float b;
int c;
}data_t;
但是他们的功能完全不同~~
联合体:“ 需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体,也叫联合体。”(百度百科)
#include <string.h>
#include <stdio.h>
union data{
float a;
float b;
int c;
}data_t;
int main()
{
printf("sizeof(float):%d\nsizeof(data_t):%d\n",sizeof(float),sizeof(data_t));
return 0;
}
运行结果:
sizeof(float):4