对齐汇总数据

通常,结构按照 32 位和 64 位方式下最严格对齐的成员对齐。 但是,因为 long 类型和指针在 64 位方式下更改大小和对齐,因此某个结构的最严格成员的对齐可能更改,导致结构自身的对齐发生更改。

包含指针或 long 类型的结构不能在 32 位和 64 位应用程序之间进行共享。 尝试共享 longint 类型或者将指针覆盖到 int 类型的并集可能更改对齐方式。 通常,除最简单的结构外,您还需要检查所有结构的对齐和大小依赖关系。

在 64 位方式下,如果结构大小不是 8 个字节的整数倍,那么可能无法正确访问以值的方式传递到 va_arg 自变量的结构中的成员值。

以一种方式写入到文件的任何汇总数据无法以另一方式正确读取。 以其他语言交换的数据具有相似问题。

有关对齐数据结构 (包括包含位字段的结构) 的详细信息,请参阅 对齐数据