intやcharの大きさについて
intやcharの大きさについて
大学でintやcharの実際の大きさは環境に依存すると教わったのですが、サイトによってはintは4バイト、charは1バイトと断定して言っている場合もありますがどちらが正しいのでしょうか?
Re: intやcharの大きさについて
えと、確かサイズはCPUのサイズによって変わったはずです。
32bit CPUだと intは4バイト、64bit CPUだと8バイトになります。実際の開発だとそこの部分も考慮してプログラムするみたいですけど。
参考になるかな?↓
http://nobonobo.blog.so-net.ne.jp/2006-01-16
32bit CPUだと intは4バイト、64bit CPUだと8バイトになります。実際の開発だとそこの部分も考慮してプログラムするみたいですけど。
参考になるかな?↓
http://nobonobo.blog.so-net.ne.jp/2006-01-16
百聞は一見にしかず。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。
書籍とか経験談とか見て知識をつけるのも大事だけど。
書籍とか経験談とか見て知識をつけるのも大事だけど。
Re: intやcharの大きさについて
回答ありがとうございます。
今memsetでchar型の配列にすべて同じものを入れようとしてたのですが、これが環境によって2バイト以上になってしまうとmemsetが使えないなと思ったのですが、char型についてはどの環境でも1バイトという認識で大丈夫なのでしょうか?
今memsetでchar型の配列にすべて同じものを入れようとしてたのですが、これが環境によって2バイト以上になってしまうとmemsetが使えないなと思ったのですが、char型についてはどの環境でも1バイトという認識で大丈夫なのでしょうか?
Re: intやcharの大きさについて
定義により,charは1バイトです。
ref) ISO/IEC 9899:1999 6.5.3.4 The sizeof operator
それ以外の型は,最低限表せなければならない範囲と,表すことの出来る範囲の大小関係のみが決まっています。
1バイトが64ビットで,signed char/short/int/long/long longが全て64ビット値を表現可能,という処理系であっても規格に反しません。
# 1バイトは8ビット以上であって8ビットとは限らない。
ref) ISO/IEC 9899:1999 6.5.3.4 The sizeof operator
それ以外の型は,最低限表せなければならない範囲と,表すことの出来る範囲の大小関係のみが決まっています。
1バイトが64ビットで,signed char/short/int/long/long longが全て64ビット値を表現可能,という処理系であっても規格に反しません。
# 1バイトは8ビット以上であって8ビットとは限らない。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: intやcharの大きさについて
解決してますが、整数型の大きさは環境依存しますが32bitとの互換性のため64bitコンパイラでもintは4バイトの場合が多いようです。
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... 0%E5%9E%8B
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... 0%E5%9E%8B
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。