#include <stdio.h>
#include <stdlib.h>
struct A
{
int a;
double b;
char c;
short d;
};
struct B
{
double b;
int a;
char c;
short d;
};
int main()
{
printf("%d\n",sizeof(A));
printf("%d\n",sizeof(B));
system("PAUSE");
return 0;
}
對齊規則: 類型必須從類型size的整數倍開始,結構體size必須為結構體內類型最大的整數倍。
struct A: int 4 double 8 必須從8開始,故為16,char為17,short必須從2字節整數倍,從18開始,故為20,結構體必須為8的整數倍,所以必須為24。
struct B:double 8,int 4,char 1 對齊到14,從short開始2,一共為16