据我所知,默认情况下将完成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