Index / Reload

Comment on 2005-05-21

2005-05-21 について、コメントがあればどうぞ!
E-mail アドレスは公開されません。URL は公開されます。
なお、管理者の判断により予告なくコメントを削除することがあります。 ご了承下さい。

パスワードを入力すると後からコメントの修正が可能です。

確認:下の Check の項目に iBlXKgy0 をコピーして入力してね。

お名前:
E-mail or URL:
Check: ← 上の方にある確認文字列を入力してね。
Password:
コメント:
* nminoru 2005-05-26 16:24:12 [Edit]

上のプログラムの示唆するように、ポインタの減算結果を大小関係の比較に使おうとすると、sizeof(ptrdiff_t) が sizeof(intptr_t) よりも大きくならないと都合が悪いのです。OS/ドライバーや VM の実装でポインタの減算を直接使ってメモリ領域の幅を計算してしまいバグ混入というのを見たことがあります。

ptrdiff_t を 64bit 整数にしてやれば解決するのですが、速度が遅くなるのと、sizeof(ptrdiff_t) == sizeof(intptr_t) に依存するプログラムがバグってしまうために大顰蹙を買うことになります...

* ぶぅ 2005-05-25 18:11:24 [Edit]

「5. C 言語の ptrdiff_t 型は何ビットであるべきか」
「本来符号付き 33 bit になる」と言ったところで、指すことの出来るアドレスのほうが32bitしかないのなら、どうしようもないですよね?
Cは実用的な言語であるべきなのだから、結果を符号無し32bitにキャストしたものになる、でいいんじゃないでしょうか?

Powered by くっつき BBS