问个Struct的对齐问题?
听了半天结构体的对齐方式,感觉还是没听懂。请问下面的例子是怎么计算出来的呀?
//st1类型占8字节
struct st1{
int a;
short b;
char c;
};
//st2类型的占12字节 调了st1数据成员的次序
struct st2{
char a;
int b;
short c;
};
//st3类型的占16字节 不论如何调序结果都是16字节
struct st3{
int a;
char b;
double c;
};
另外,听说GCC和标准C在对齐方面有所区别,请问又是怎么回事呢?