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倍)。