3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法 与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的 对齐方式?

这些 ``空洞" 充当了 ``填充", 为了保持结构中后面的域的对齐, 这也许是必须的。为了高效的访问, 许多处理器喜欢 (或要求) 多字节 对象 (例如, 结构中任何大于 char 的类型) 不能处于随意的内存 地址, 而必须是 2 或 4 或对象大小的倍数。

编译器可能提供一种扩展用于这种控制 (可能是 #pragma; 参见问题 11.21), 但是没有标准的方法。

参见问题 20.3

参考资料: [K&R2, Sec. 6.4 p. 138]; [H&S, Sec. 5.6.4 p. 135]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)