アカウント名:
パスワード:
モバイルギア(WindowsCE機)のアプリケーションを開発していたときに、C のソースで構造体を使ったら何をやってもハードウェア例外発生。MIPS ではデータ配置が 4バイトとの倍数というルールを知らなかった。けっきょくダミーバイトを埋め込んで解決したけど、未熟だったなあ。構造体の配置 [microsoft.com]
「4バイトとの倍数というルール」ではなくて、"自然な" アドレスにメンバを配置。リンク先にもそう書いてあるけど..って
intおよびlong(32ビット) 32 バイト境界上に配置。float 32 バイト境界上に配置。double 64 バイト境界上に配置。
だと? 富豪的プログラミングにもほどがあるだろ。
x86では奇数バイトにすら配置できるけど遅いよ。ある意味それこそ富豪的プログラミング
その場合でも2箇所読む程度ですよね。32ビット変数を32バイト毎に配置したら、バースト転送も何も無に帰するんじゃないですかね?Typoとは思うけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
MIPS CPU (スコア:2)
モバイルギア(WindowsCE機)のアプリケーションを
開発していたときに、C のソースで構造体を使ったら
何をやってもハードウェア例外発生。
MIPS ではデータ配置が 4バイトとの倍数というルールを知らなかった。
けっきょくダミーバイトを埋め込んで解決したけど、未熟だったなあ。
構造体の配置 [microsoft.com]
Re: (スコア:0)
「4バイトとの倍数というルール」ではなくて、"自然な" アドレスにメンバを配置。
リンク先にもそう書いてあるけど..って
intおよびlong(32ビット) 32 バイト境界上に配置。
float 32 バイト境界上に配置。
double 64 バイト境界上に配置。
だと? 富豪的プログラミングにもほどがあるだろ。
Re:MIPS CPU (スコア:0)
x86では奇数バイトにすら配置できるけど遅いよ。ある意味それこそ富豪的プログラミング
Re: (スコア:0)
その場合でも2箇所読む程度ですよね。
32ビット変数を32バイト毎に配置したら、バースト転送も何も無に帰するんじゃないですかね?
Typoとは思うけど。