#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;
}
對(duì)齊規(guī)則: 類型必須從類型size的整數(shù)倍開始,結(jié)構(gòu)體size必須為結(jié)構(gòu)體內(nèi)類型最大的整數(shù)倍。
struct A: int 4 double 8 必須從8開始,故為16,char為17,short必須從2字節(jié)整數(shù)倍,從18開始,故為20,結(jié)構(gòu)體必須為8的整數(shù)倍,所以必須為24。
struct B:double 8,int 4,char 1 對(duì)齊到14,從short開始2,一共為16