C語言中共用體的內存
C語言中結構體的和公用體的是有區別的
(1)首先是定義時候的不同
共用體的定義 union{ 成員列表 }
結構體的定義 struct{ 成員列表 }
(2)內存的區別
struct(結構體)是所有內存的總和
union(共用體)是成員中最大的那個
#include<stdio.h>
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