hereによると、C コンパイラは構造体をバイナリ ファイルに書き込むときに値をパディングします。リンクの例が言うように、次のような構造体を書くとき:
struct {
char c;
int i;
} a;
バイナリ ファイルに追加すると、コンパイラは通常、int フィールドが適切に配置されるように、char フィールドと int フィールドの間に名前のない未使用の穴を残します。
別の言語 (私の場合は Java) を使用して、バイナリ出力ファイル (C で生成) の正確なレプリカを作成するにはどうすればよいですか?
Java出力にCパディングを自動的に適用する方法はありますか? または、コンパイラのドキュメントを調べて、それがどのように機能するかを確認する必要がありますか (ちなみに、コンパイラは g++ です)。