據我所知,默認情況下將完成4字節對齊。說爲什麼在這種情況下填充不會發生?
typedef struct
{
int data7;
unsigned char data8;
//3 -bytes will be added here.
}Sample1;
所以sizeof(Sample1)
將是8
但對於以下結構,填充爲什麼沒有發生?
typedef struct
{
unsigned char data1;
unsigned char data2;
unsigned char data3;
unsigned char data4;
unsigned char data5;
unsigned char data6;
}Sample2;
但的sizeof(樣品2)只有6。這個Sample2不是一個4字節對齊的結構?
EDIT ::
作爲每維基
數據對齊是指將數據以存儲器偏移量等於字尺寸,這提高了系統的性能的某個倍數由於CPU的方式處理內存。
但是Sample2的成員不會以兩個右邊的倍數對齊?
謝謝。
好問題+1 – Angus 2012-08-02 08:11:53