C/C++编程:结构体默认对齐方式
64位操作系统上默认是8字节对齐,整体所占字节数分析如下:首先整个结构体本身安置在8字节对齐处,这个是由编译器保证的。 然后是第一个元素a,a的开始地址就是整个结构体的开始地址,所以自然是8字节对齐的。但是a的结束地址要由下一个元素具体决定 之后是第二个元素b,b为double型的,自身对齐长度是8,所以不能自接放在a的后面,也就是说a需要另外填充4个字节空间再结束,然后放b,由于b本身就是对齐的,所以无需另外填充,直接结束 直接放c,c放完之后也不能自接结束,因为要保证整个结构体大小是8的整数倍,所以c后面需填充7个字节的内存空间。