こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

私は現在、職業訓練校にて勉強し始めた初心者です。

私は現在、職業訓練校にて勉強し始めた初心者です。

C言語の ”char型”の使い分けが解からなく困っております。
本では
char型 0~255 又は -127~127
signed char型 -127~127
unsigned char型 0~255

となっており、具体的には”char型”はどう使い分けるのか解かりません。
又、符号付と符号無し以外に存在する意味が解かりません。

どうぞ宜しく御願い致します。

投稿日時 - 2010-03-06 17:30:44

QNo.5730005

困ってます

質問者が選んだベストアンサー

こんにちは。

C言語の厳密な仕様・規格等については詳しくありませんが、#1さんが
書かれているとおり、
  signed も unsigned も付けずに単に、char型として宣言した場合、
  符号付き(signed)となるか、符合無し(unsigned)となるかは、
  言語仕様としては【未定義】であり、
  その扱いは、処理系依存(コンパイラにより定義が異なる)
となるようです。(※下記参考サイト参照)

■参考サイト
C言語編 第10章 変数のサイズ
http://www.geocities.jp/ky_webid/c/010.html

[迷信] char 型は符号付き
http://www.kijineko.co.jp/tech/superstitions/char-is-signed.html

何故、単一のchar型があるかというと、これは勝手な憶測ですが、
  コードの記述を簡単(シンプル)にして、見易くするため?
なのかもしれません。
※本当のところは判りません。(すみません)

ちなみに、char型を、8ビットの整数値とした場合、
  符号付き(signed)の値の範囲は、-128 ~ +127
となります。(※-127 ~ +127 ではありません。)

以上です。

投稿日時 - 2010-03-06 19:31:20

お礼

このような基本的な質問にも快く回答いただき、本当にありがとうございました。

投稿日時 - 2010-03-06 19:59:38

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

単にcharと宣言したとき、signed charになるのかunsigned charになるのかは処理系に依存します。

投稿日時 - 2010-03-06 18:28:00

お礼

すぐの回答ありがとうございました。

投稿日時 - 2010-03-06 20:00:41

あなたにオススメの質問