彻底理解结构体struct和枚举union的内存对齐和大小计算

#include <iostream>
using namespace std;

typedef union
{
    long i;  //32位机占4个字节
    int k[5]; //5个int占20个字节,一个int是4个字节
    char c;    //c实际只占一个字节,但由于内存对齐会给它分配4个字节的空间
}DATE;

DATE D;

struct data
{
    char c1;   
    char c2;    
    int m;
    DATE n;
    double q;
    char c3;
};
int main()
{
    cout<<sizeof(D)<<endl;   //20个字节
    cout<<sizeof(struct data)<<endl;   //48个字节
    return 0;
}

彻底理解结构体struct和枚举union的内存对齐和大小计算
标题

彻底理解结构体struct和枚举union的内存对齐和大小计算