[1802] Re:char hoge = 'A';
投稿者:yuya
2012/03/07 11:33:17
774RRさん、C++の情報ありがとうございます。
私の理解の変遷:
文字定数は本来はchar型だが、汎整数拡張されてint型になると理解していた
→プギャー、規格に「int型を持つ」って明記されてるぅ!
(汎整数拡張が抑止されるはずのsizeofでもint型のサイズが返ってくる)
→じゃあcharに一旦入れちゃったら、表現しきれない値は壊れるかもしれないのか?
→「charの符号の扱いに合わせた」int値になるから大丈夫だよん
ということですね。
「なんでcharの符号は処理系定義なのにめったに困ることがないのか」という疑問が晴れたように思います。
ヘンにsigned/unsignedを指定して文字コードを扱ってしまった場合にこそバグるんですね。