关于数据对齐的有关问题

关于数据对齐的问题
#include<iostream>
using namespace std;
typedef struct s{
int a[4];
double b;
}ceshi;

int main()
{
cout<<sizeof(ceshi)<<endl;
}


输出为:24
结构体中int a[4]所占字节是16,根据数据对齐到内存长度最大的,输出不应该是32吗?为什么是24呢?
------解决方案--------------------
当然不是对齐到最大的这样简单,你google一下字节对齐,c++
------解决方案--------------------
有的编译器,double 按照4字节对齐