[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:24365] struct のアライメント
大槻です。
gccを使ってプログラムを作成しています。
次のような構造体をでデータをアクセスすると。
typedef struct {
char chA;
union {
char chB[256];
int nA;
} uni;
} DATA;
.....
DATA *a;
......
printf("a = %x\n",a);
printf("a->uni.chB = %x\n",a->uni.chB);
printf("sizeof(DATA) = %d\n",sizeof(DATA));
.......
a = 400f3000
a->uni.chB = 400f3004
sizeof(DATA) = 260
となってしまいchAとchBの間に3バイト余分な領域が出来てしまいます。
構造体メンバのアライメントを1バイトにしなければならないのは分かるのです
がmanでgccを見ても分かりませんでした。
どなたかgccのオプションを教えて頂けないでしょうか。
よろしくお願いします。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/ Yasuhiro Ootuki(大槻恭裕) _/_/
_/_/ E-mail:otuki@xxxxxxxxxx _/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/