16个字节。看这个结构体和公用体组合所占字节数,首先看里面成员数据类型最大的占多少字节。明显是int占四个字节,确定基本框架。然后看union里面,union的大小为其内部所有变量的最大值,并且按照类型最大值的整数倍进行内存对齐,也就是说大小为char position[10]十个字节,但是考虑到内存对齐,所以会是12个字节。在加上int num4个字节,一共16个字节。你可以在看一下这个站多少字节。
struct st
{
double a;
union{
int b;
char[9];
};
}st1;
这个应该不会分配内存,这个只是定义了一种类型,没有使用
14B,num4字节,union10字节