typedef union{
long i;
int a[5];
double b;
}U;
typedef struct {
int a1;
U a;
double b1;
}M;
cout<<sizeof(M);
结果为40;
结构体内的对齐应该是以double类型大小8对齐的
所以内存分配是:
int a1;//8字节
U a;//24字节
double b1;//8字节
typedef union{
long i;
int a[5];
double b;
}U;
typedef struct {
int a1;
U a;
double b1;
}M;
cout<<sizeof(M);
结果为40;
结构体内的对齐应该是以double类型大小8对齐的
所以内存分配是:
int a1;//8字节
U a;//24字节
double b1;//8字节