C语言数据结构内的成员先后顺序不能改变。常见的C语言编译器在32比特x86上，double是8字节对齐，但Linux上是4字节对齐（编译选项"-malign-double"实现8字节对齐）。 一些编译器（Microsoft, Borland,GNU,等等）使用 directive指定对齐的包入（packing）。例如：struct MyPackedData这个结构在32位系统的大小为6字节。 
缺省packing与.Microsoft编译器的项目缺省packing