[過去ログ]
ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
ゲームボーイアドバンス(GBA)非公式開発 Part2 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
466: 名前は開発中のものです。 [] 2006/02/25(土) 15:23:38 ID:LRNrnoNa ある構造体に汎用的な配列を用意し、状況によって汎用配列部分に 別の構造体をキャストすることでいろいろ使い分けられるように したいんですが下記(分けて書き込みます)のようなソースがうまく動きません。 「w->cnt = 5;」等の部分で値を代入しているのに正しい値がはいりません。 VC++では正しく代入できるようです。なぜだかわかりますか? 仕様なんでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/466
469: 名前は開発中のものです。 [sage] 2006/02/25(土) 16:32:04 ID:ChwfFfDn >>466-467 アライメントの勉強をしてみよう。 http://www.google.co.jp/search?q=%E3%83%A1%E3%83%A2%E3%83%AA+%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88 この場合は u8 のアライメントしか持っていない wrk に u16 としてアクセスしていることが原因。 GBA の CPU である ARM ではアライメント違反した書き込みはできない。 VC++ で正しく動作するように見えるのは CPU が違うから。 x86 系ではアライメント違反した書き込みはパフォーマンスが落ちるだけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/469
471: 名前は開発中のものです。 [sage] 2006/02/25(土) 17:28:03 ID:JLoubNl/ >>466 >>469を踏まえてこれでもう一度テストしれ typedef struct{ u8 use;/* 動作フラグ */ u16 no;/* 自分自身のタスク番号 */ u8 phase;/* 動作フェーズ */ u8 wrk[48];/* 汎用ワークエリア */ void *entryfunc;/* 実行関数 */ } __attribute__ ((packed)) TSKWRK; typedef struct{ u16 cnt; u8 x; u8 y; u32 tmp; } __attribute__ ((packed)) TEST; http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/471
481: 466 [] 2006/02/26(日) 15:39:57 ID:UpVKMws2 構造体のキャストで質問したものです。 とりあえず、みなさんのおかげで スプライト制御が一段落したんで 経過をご報告します。 ttp://2ch-library.com/uploader/src/up_2121.zip http://mevius.5ch.net/test/read.cgi/gamedev/1099119005/481
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s