根据这里,C编译器将在将结构写入二进制文件时填充值。正如链接中的示例所说,在编写这样的结构时:
struct {
char c;
int i;
} a;
对于二进制文件,编译器通常会在 char 和 int 字段之间留下一个未命名的、未使用的空洞,以确保 int 字段正确对齐。
如何使用不同的语言(在我的例子中是 Java)创建二进制输出文件(用 C 生成)的精确副本?
是否有自动方法在 Java 输出中应用 C 填充?还是我必须通过编译器文档来查看它是如何工作的(顺便说一下,编译器是 g++)。