ゲームボーイアドバンス(GBA)非公式開発 Part2at GAMEDEVゲームボーイアドバンス(GBA)非公式開発 Part2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト669:名前は開発中のものです。 07/09/28 07:29:04 MwwoigrE 境界揃えようとするから。 &graphicpat_t->sprites[0] でアドレス出力してみりゃいい。 typedef struct{ u16 tileno ; // 使用するタイルデータ番号 u8 usespritenum ; // 使用するスプライトの数 ここにダミーが1バイト spritedata_t sprites[USE_SPRITE_NUM] ; // スプライトの情報 u8 dummy[1] ; ここにダミーが3バイト } graphicpat_t ; 多分こうなってる。 670:名前は開発中のものです。 07/09/28 07:54:45 S2twr9xc 詳しいことはこちら。 ttp://www.jp.arm.com/tec_support/faqdev/ads037.html 対処法はこんな感じで。 #define __PACKED __attribute__ ((__packed__)) typedef struct{ u16 a; u8 b; u16 c; } __PACKED ST_TEST; 671:名前は開発中のものです。 07/09/28 10:15:25 MwwoigrE dummy[1] を上に移動するだけでもいいよ。 672:名前は開発中のものです。 07/09/28 17:57:30 3PURGaCN >>669-671 あれから自分でもパディングの事を調べてみたんですが、 パディングって構造体の最後だけじゃなくてメンバの途中にも入るんですね。 メンバがu8一つだけの構造体のサイズを調べると2バイトになっていたり、 u8二つの構造体のサイズは4バイトだったりするのが謎だったりで まだちゃんと理解できてはいないのですがとりあえず graphicpat_tのdummy[1]をusespritenumnumの次にする事でうまくいってます。 レスありがとうございました。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch