- PR -

下から二つ目の質問の返答の意味がわかりかねます

1
投稿者投稿内容
ForgetMe
会議室デビュー日: 2004/03/25
投稿数: 7
投稿日時: 2004-03-25 14:14
http://www.atmarkit.co.jp/flinux/special/interview01/interview01.html
の下から二つ目の質問の返答について

Helgaas:
32bitマシンではint(integer)、long、ポインタが同じサイズですが、64bitではintが32bit、longとポインタが64bitです。きちんと書かれていないコードは、これが問題になります

とおっしゃってますが。。。
32bitだってサイズは違うような気がするのですが、いかがでしょう?

----
PS.
すいません、Helgaasさんの言うとおりですね
Javaを長くやっててCの世界と混同してしまいました。
お騒がせしました。大変申し訳ないです

[ メッセージ編集済み 編集者: ForgetMe 編集日時 2004-03-25 14:38 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-03-25 14:42
引用:

ForgetMeさんの書き込み (2004-03-25 14:14) より:
http://www.atmarkit.co.jp/flinux/special/interview01/interview01.html
の下から二つ目の質問の返答について

Helgaas:
32bitマシンではint(integer)、long、ポインタが同じサイズですが、64bitではintが32bit、longとポインタが64bitです。きちんと書かれていないコードは、これが問題になります

とおっしゃってますが。。。
32bitだってサイズは違うような気がするのですが、いかがでしょう?



C言語のintやlongのサイズは仕様では明確には決まっておらず、
charは1バイト(≠8ビット)
char <= short <= int <= long という型の大小関係、
intのとりうる最低限の数値の範囲
等の既定があっただけだったと思います。
(資料などで確認せずに書いているので間違っているかも)

なので、intやlongのサイズがどうなるかは処理系依存です。
最近Cをやってないので古い話になりますが、
6年くらい前にNEWSのマシンでCをやっていたときは、intもlongも32ビットでした。
Windowsでも32ビット環境ではintもlongも32ビットですよね。

結構多くの32ビットの処理系でintもlongも32ビットなのではないでしょうか。


1

スキルアップ/キャリアアップ(JOB@IT)