ゲームボーイアドバンス(GBA)非公式開発 Part2at GAMEDEVゲームボーイアドバンス(GBA)非公式開発 Part2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト472:名前は開発中のものです。 06/02/25 17:30:14 JLoubNl/ >>470 この場合unionは全く関係ないし的外れ 473:名前は開発中のものです。 06/02/25 17:32:36 +k+s2zkt メモリをダンプしてみろ それからだ。 474:名前は開発中のものです。 06/02/25 17:38:12 ChwfFfDn >>470,472 union 使ってアライメント確保する方法がある。 Cだとコレぐらいでいいんじゃないかな? union { u8 size_holder[48]; void* pointer_align; long long integer_align; long double floating_point_align; } wrk; C++ だとメンバ変数・関数ポインタを追加。 >>471 packed はパフォーマンス落としたりバイナリ互換に問題が発生したりするんで 気をつけて使う必要がある。非標準になるしね。 その例だと TSKWRK に packed は必要ない。 475:名前は開発中のものです。 06/02/25 18:20:18 LRNrnoNa みなさん、アドバイスありがとうございます。 アライメント自体の概念はわかりました。 実用についてはまだよくわからんのですこし調べてみます。 >>474 unionのサンプルの意味は u8でサイズを決めつつ、何のデータを扱ってもいいように void型のポインタと最大サイズの整数と浮動少数で 共用体を定義しているということでよろしいでしょうか? あと、私が書き込んだソースを下記のように修正したら問題なく 動くようになったんですがこのまま使い続けるのは 問題あるでしょうか? u8 wrk[48] → u32 wrk[12] 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch