intやcharの大きさについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
fsuhkudna
記事: 5
登録日時: 13年前

intやcharの大きさについて

#1

投稿記事 by fsuhkudna » 13年前

大学でintやcharの実際の大きさは環境に依存すると教わったのですが、サイトによってはintは4バイト、charは1バイトと断定して言っている場合もありますがどちらが正しいのでしょうか?

アバター
TOMY
記事: 53
登録日時: 13年前
住所: 愛知県
連絡を取る:

Re: intやcharの大きさについて

#2

投稿記事 by TOMY » 13年前

えと、確かサイズはCPUのサイズによって変わったはずです。
32bit CPUだと intは4バイト、64bit CPUだと8バイトになります。実際の開発だとそこの部分も考慮してプログラムするみたいですけど。
参考になるかな?↓
http://nobonobo.blog.so-net.ne.jp/2006-01-16
百聞は一見にしかず。うんちくだけを頭にぶち込む前に実際に実験した方がいいよ。
書籍とか経験談とか見て知識をつけるのも大事だけど。

fsuhkudna
記事: 5
登録日時: 13年前

Re: intやcharの大きさについて

#3

投稿記事 by fsuhkudna » 13年前

回答ありがとうございます。
今memsetでchar型の配列にすべて同じものを入れようとしてたのですが、これが環境によって2バイト以上になってしまうとmemsetが使えないなと思ったのですが、char型についてはどの環境でも1バイトという認識で大丈夫なのでしょうか?

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: intやcharの大きさについて

#4

投稿記事 by YuO » 13年前

定義により,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ビットとは限らない。

fsuhkudna
記事: 5
登録日時: 13年前

Re: intやcharの大きさについて

#5

投稿記事 by fsuhkudna » 13年前

そうなんですか!
それならmemsetを安心して使えます。
ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: intやcharの大きさについて

#6

投稿記事 by softya(ソフト屋) » 13年前

解決してますが、整数型の大きさは環境依存しますが32bitとの互換性のため64bitコンパイラでもintは4バイトの場合が多いようです。
「整数型 - Wikipedia」
http://ja.wikipedia.org/wiki/%E6%95%B4% ... 0%E5%9E%8B
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る