struct NODE //這時候內存大小為16
{ //按定義的先后順序分配內存
char k; //占1個字節,偏移量為0(相對於結構體),
char c; //占1個字節,偏移量為1(相對於結構體),不用填充。
double a; //占8個字節,偏移量為2(相對於結構體),不是double類型的整數倍,所以要在a前填充6個字節,偏移量變為8,
}; //總內存為16
struct NODE //這時候內存大小為24
{ //
char k; //占1個字節,偏移量為0(相對於結構體)
double a; //占8個字節,偏移量為1(相對於結構體),不是double類型的整數倍,所以要在a前填充7個字節,偏移量變為8。
char c; //占1個字節,偏移量為16(相對於結構體),是char類型的整數倍,前邊不用填充,但是,結構體的大小要是所有成員大小的整數倍,因此要在結尾填充7個字節,變成24(double的3倍)。
};
