据我所知,默认情况下将完成 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(Sample2) 仅为 6。这个 Sample2 不是 4 字节对齐的结构吗?
编辑::
根据维基
数据对齐意味着将数据放置在等于字大小的某个倍数的内存偏移处,由于 CPU 处理内存的方式,这会提高系统的性能。
但是 Sample2 的成员不会以 2 的倍数对齐吗?
谢谢。