结构体变量所占内存长度是各成员所占内存长度之和。每个成员分别占其自己的内存单元。
共用体变量所占内存长度等于最长的成员变量的长度。
union Data
{
int i;
float f;
char str[20];
}data;
共用体data各占20个字节,因为最长的 char str[20]占20个字节。
而不是4+4+20=28个字节。
共用体的作用: 节省内存,有两个很长的数据结构,不会同时使用。
用结构体就太浪费了。
结构体变量所占内存长度是各成员所占内存长度之和。每个成员分别占其自己的内存单元。
共用体变量所占内存长度等于最长的成员变量的长度。
union Data
{
int i;
float f;
char str[20];
}data;
共用体data各占20个字节,因为最长的 char str[20]占20个字节。
而不是4+4+20=28个字节。
共用体的作用: 节省内存,有两个很长的数据结构,不会同时使用。
用结构体就太浪费了。