C语言中共用体的内存
(1)首先是定义时候的不同
共用体的定义 union{ 成员列表 }
结构体的定义 struct{ 成员列表 }
(2)内存的区别
struct(结构体)是所有内存的总和
union(共用体)是成员中最大的那个
#include
union data /*共用体* /
{
int a;
float b;
double c;
char d;
} m m
struct stud /*结构体* /
{
int a;
float b;
double c;
char d;
}
int m a i n ( )
{
struct stud student
printf("%d,%d",sizeof(struct stud),sizeof(union data));
return 0;
}
运行结果
15 8
解析:在union中int(4个字节),float(2个字节),double(8个字节),char(1个字节),最大的是8,所以公用体的内存就为8。
在struct中则是全部之和4+2+8+1=15