结构体对齐方式
结构体
(struct)的
sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体
.
struct
{ char a;
short b;
char c; }S1;
struct
{ char a;
char b;
short c; }S2; 分别用程序测试得出 sizeof(S1)=6 , sizeof(S2)=4
可见,虽然两个结构体所含的元素相同,但因为其中存放的元素类型顺序不一样,所占字节也出现差异。这就是字节对齐原因。通过字节对齐,有助于加快