公用体
#include<stdio.h>
struct data{//不同类型变量享受同一地址,存在同一内存单元当中,节省开销
int a;//内存大小为其中最大的一个,int最小,char最大 为4
char b;
float c;
};
也可以用公用体
union data{
int a;//
char b;
float c;
};
int main()
{
printf("%lu",sizeof(struct data)) ;//输出结构体的尺寸,尺寸为12,如果改为union尺寸为4
return 0;
}
如果需要或许数据的地址,可以使用
int main()
{
struct data data_1;//公用体改成union data data_1
data_1.b='C';
data_1.a=10;
data_1.c=10.0;
printf("%p\n%p\n",&data_1.a,&data_1.b);
return 0;
}
发现char和float各占4个字节,地址改变,如果公用体则地址三个一致