64Bit OS no

解決


shou  2004-04-21 18:16:56  No: 53528

64Bit OSである Windows Server 2003 + VS 2003.NET の Cや C++では intのサイズはいくつになるのでしょうか? 同様の条件でメモリのアドレスのサイズは?


shou  2004-04-21 18:20:25  No: 53529

すみません タイトルが途中で切れてしまいました。m(__)m
「 64Bit OSの intとメモリアドレスのサイズについて 」


Toshi  2004-04-21 19:07:39  No: 53530

基本的に、ポインター以外は32ビットのままです。
ポインターだけ64ビット幅になります。

が、細かい所では、size_t や time_t が64ビット幅になったり、
APIの一部のパラメータが64ビット幅に変更された新しい物が
用意されてたりします。

詳しくはプラットフォームSDKのヘルプを見ると良いと思います。
(英語ですが・・)


shou  2004-04-21 21:00:03  No: 53531

Toshi さん こんにちは
  回答ありがとうございます。

昔読んだ参考書に intとポインタのサイズは OSの Bit数に依存するとあったので気になったのですが。
intは 32Bitのままなんですね 64Bit にしたら doubleと同じですもんね


Toshi  2004-04-21 22:19:44  No: 53532

>昔読んだ参考書に intとポインタのサイズは OSの Bit数に依存するとあったので>気になったのですが。

OSでは無くて、CPUのBit数に依存するですね。
その認識は間違って無いのですが、最近Cベースの言語定義も時代と共に
変わってきててですね・・
今時は CPUのBit数 = int とは限らず、
「各Cコンパイラのデータモデル実装方式により、型精度が決まる」
と言った方が正しい認識だと思います。
データモデルには LP32、ILP32、ILP64、LLP64、LP64 等が有ります。

それぞれのデータモデルでの型精度は
http://www.unix-systems.org/version2/whatsnew/login_64bit.html
に一覧が出ています。

ちなみに、64bit-WindowsのVCが採用しているデータモデルは LLP64
(略称 P64 とも言う)です。


shou  2004-04-21 23:35:31  No: 53533

>OSでは無くて、CPUのBit数に依存するですね。

ごめんなさい Toshiさんの仰る通り CPUの Bit数でした。m(__)m

とても参考になりました,ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加