参考:http://my.unix-center.net/~Simon_fu/?p=262
今天与超,晖,栋,宇几人论此问题,终得以下结论,不知正确与否,姑且记下。
对于32位机,CPU的内存读写周期是4WORD,所以在内存对齐时,皆以此填满。
如:
struct A
{
char a;
double b;
char c;
};
sizeof(A)=4+8+4=16;
struct B
{
char a;
double b;
char c;
char d;
};
sizeof(B)=4+8+4=16;
然仍觉得不踏实,因为没有官方的说明,遂网查,稍有理解(http://www.cnblogs.com/shitouer/archive/2010/04/07/1706588.html)谢谢石头兄!
不过按照那个理解,似乎还是有些说不通,对他举的那个例子是可行的,可对我上面所举的例子行不通,姑且先这样吧,迫不及待
把这些写下来了,稍后理解了再继续,==。