struct a {char b;double a;}通过字节对齐应该是大小应该是12还是16?解决方法

struct a {char b;double a;}通过字节对齐应该是大小应该是12还是16?
我这里Linux上是12,会有16这个结果吗?

------解决方案--------------------
会,M$VC缺省是pack(8)的,结果就是16 ...

------解决方案--------------------
gcc下char是4字节,double是8字节,所以是12啊。
------解决方案--------------------
char 是1字节
double 是4字节
32位操作系统,为了效率问题,保持4字节对齐,
char之后,在double的时候,会从下个4字节开始
所以是4+8=12