よくあるお問い合わせ(保守製品) |
|||
|
文書番号:01051121_j
Q.char で宣言された変数に 0xaa を代入するところで、constant out of range due ~ ワーニングが発生します。どうしてですか? A. char 型は、signed/unsigned の指定が無い場合、signed char とみなされます。char の表現できる数値範囲は、100進数で-128~127となっています。 0xaa は 10進数で170であり、char の範囲外となっておりますので、0xaa の値を charの範囲に丸め込み、10進数でー86の値を代入するコードが生成されます。 よって、変数を unsigned char で宣言していただくか、代入する値を char の表現できる数値範囲内に変更していただくことで、ワーニングメッセージが出なくなります。 |