Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ユーザ空間アドレスとlong型

タグ: C++

Win32における1プロセスあたりのユーザ空間は、通常2GB
数字で表すと 0x00000000 ? 0x7fffffff となり、long型でも常に整数として扱える。
ところがLinuxの1プロセスに割り当てられるユーザ空間は 0x00000000 ? 0xbfffffff3GB
long型に格納すると0x80000000以上が負数となってしまう(かもしれない。正確には処理系依存)。

Win32でしか動作させる予定がないのであれば、long型でもおそらく問題ない(4GB RAMチューニングというのが少々気になるが……)。
だが、コードというものは往々にして制作時の意図を越えて流用されるものである。
例え「今の環境なら大丈夫」であっても、将来他の環境に移す必要が生じたとき無駄に悩まないようにするため、素直にsize_t型にするか、環境依存のコードであることを明記しておくべきである。

……しておいてください、ほんと(´Д⊂

スポンサーサイト

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://idlysphere.blog66.fc2.com/tb.php/52-202f559e
この記事にトラックバックする(FC2ブログユーザー)

Appendix

タグ

Blog内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。