您的位置:首页 > 其它

结构和联合的区别

2008-12-25 10:29 148 查看
1,union共享内存单元所以按占用内存最大的那个成员变量分配内存,
class、struct要考虑对齐(即将内存小的那个成员补齐到和内存单元最大的那个)
占用内存计算方式要视情况而定

C/C++ code
union u
{
char c;
int i;
}
sizeof(u) = 4
struct s0
{
int i;
char c;
}
sizeof(s0) = 8;
struct s1
{
int i;
char c1;
char c2;
}
sizeof(s1) = 8
struct s2
{
int i;
char c1;
char c2;
char c3;
char c4;
char c5;
}
sizeof(s2) = 12
struct s3
{
double d;
char c;
}
sizeof(s3) = 16


2,对联合中一个的更新会影响到其他成员而结构数据成员拥有独立内存所以不会有影响
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: