5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

「コンパイラ・スクリプトエンジン」相談室4

872 :デフォルトの名無しさん:05/01/14 13:00:57
自分の自作言語でC言語の構造体のアラインメントを
エミュレートしたいのですが、メンバオフセットの決め方がよくわかりません。

例えば#pragma pack(4)のとき、

typedef struct {
 int a; // offset 0
 char b[1]; // offset 4
 int c; // offset 8
} X;

となるのはいいんですが、

typedef struct {
 int a; // offset 0
 char b[1]; // offset 4
 short c; // offset 6
 short d; // offset 8
 int e; // offset 12
} Y;

shortが offset=6になる理屈がわかりません。
これは暗黙的にwordのアラインメントも働いているということでしょうか?


229 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)