struct s1//结构体s1只有类型,没有变量,没有变量自然就没有空间占用(s5同)。
{
union u
{
int i;
};
struct ss1
{
int i;
};
};//0个字节
struct s2
{
union//没有类型,声明了结构体的一个成员,占内存
{
int i;
};
struct//同上
{
int i;
};
};//8个字节
struct s3
{
//既有类型也有变量,占内存
union su3
{
int i;
}su33;
struct ss3
{
int i;
}ss33;
};//8个字节
union su4
{
int i;
};
struct ss4
{
int i;
};
struct s4
{
//和s3相同
union su4 su44;
struct ss4 ss44;
};//8个字节
struct s5
{
//和 s1 相同
union su4;
struct ss4;
};//0个字节
struct s6
{
//和s1相同
union
{
int;//int i中i是个变量,如果换成int;结果相同
};
struct
{
int;
};
};//0个字节
//类型就是类型,和是不是结构体、联合体无关的,