K.Maebashi's BBS 管理者削除

以下の投稿を削除します。

[1796] Re:char hoge = 'A';
返信
投稿者:yuya
2012/02/27 12:37:08

すみません、たぶん自己解決しました。 JIS X3010:2003 6.4.4.4 文字定数 | |意味規則 単純文字定数は、型intをもつ。 |(中略) |単純文字定数が単一の文字又は逆斜線表記を含む場合、その値はその単一の文字又は逆斜線表記の値をもつ |char型のオブジェクトをint型に変換したときの結果の値とする。 |(中略) |例2. 整数に対し2の補数表現を用い、型charをもつオブジェクトに対して8ビットを用いる処理系を考える。 |型charがsigned charと同じ範囲の値をもつ処理系では、単純文字定数'\xFF'は値-1をもつ。型charが |unsigned charと同じ範囲の値をもつ場合、'\xFF'は値+255をもつ。 この例2を見ると、文字定数の値が、「charがsignedかunsignedか」に連動して定まることになりますね。つまり、int型のモノが「char型に対する扱い」に依存するんですね。知りませんでした。 ということは、無印のcharがsignedの処理系であろうとunsignedの処理系であろうと、文字定数を代入して値が変わってしまう心配はない、と。 一番気になっていたのは、「等しいはずの文字を比較したのに『等しくない』と判定されてしまうかも」ということだったのですが、これで心配はなくなりました。 # でもEOFとかち合ったりしないのかなぁ……

代替メッセージ

物理削除     パスワード: