ページ 1 / 1
intやcharの大きさについて
Posted: 2012年7月18日(水) 10:28
by fsuhkudna
大学でintやcharの実際の大きさは環境に依存すると教わったのですが、サイトによってはintは4バイト、charは1バイトと断定して言っている場合もありますがどちらが正しいのでしょうか?
Re: intやcharの大きさについて
Posted: 2012年7月18日(水) 10:33
by TOMY
えと、確かサイズはCPUのサイズによって変わったはずです。
32bit CPUだと intは4バイト、64bit CPUだと8バイトになります。実際の開発だとそこの部分も考慮してプログラムするみたいですけど。
参考になるかな?↓
http://nobonobo.blog.so-net.ne.jp/2006-01-16
Re: intやcharの大きさについて
Posted: 2012年7月18日(水) 10:55
by fsuhkudna
回答ありがとうございます。
今memsetでchar型の配列にすべて同じものを入れようとしてたのですが、これが環境によって2バイト以上になってしまうとmemsetが使えないなと思ったのですが、char型についてはどの環境でも1バイトという認識で大丈夫なのでしょうか?
Re: intやcharの大きさについて
Posted: 2012年7月18日(水) 11:05
by YuO
定義により,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ビットとは限らない。
Re: intやcharの大きさについて
Posted: 2012年7月18日(水) 11:07
by fsuhkudna
そうなんですか!
それならmemsetを安心して使えます。
ありがとうございました。
Re: intやcharの大きさについて
Posted: 2012年7月18日(水) 11:52
by softya(ソフト屋)
解決してますが、整数型の大きさは環境依存しますが32bitとの互換性のため64bitコンパイラでもintは4バイトの場合が多いようです。
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... 0%E5%9E%8B