[過去ログ] ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
469
(1): 2006/02/25(土)16:32 ID:ChwfFfDn(1/3) AAS
>>466-467
アライメントの勉強をしてみよう。
外部リンク:www.google.co.jp

この場合は u8 のアライメントしか持っていない wrk に
u16 としてアクセスしていることが原因。
GBA の CPU である ARM ではアライメント違反した書き込みはできない。
VC++ で正しく動作するように見えるのは CPU が違うから。
省1
474
(2): 2006/02/25(土)17:38 ID:ChwfFfDn(2/3) AAS
>>470,472
union 使ってアライメント確保する方法がある。
Cだとコレぐらいでいいんじゃないかな?

union
{
 u8 size_holder[48];
 void* pointer_align;
省8
476: 474 2006/02/25(土)18:33 ID:ChwfFfDn(3/3) AAS
>>475
サンプルの意味はそういうこと。
union 自体のアライメント要求がメンバの中で最大の物になることを利用したもの。

GBA のハードウェアで4バイト以上のアライメントを要求するものは
無かったと思うので、 GBA に限った動作だけを考えれば
u32 での置き換えで問題ないと言える。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.523s*