[5] Re:祝! 新掲示板移行
投稿者:(ぱ)
2007/02/20 02:13:25
>そういえば、先日の本多さんの絡みの話になりますが、
>floatをprintf()に渡すと実引数double型へ変換されますけど、
>整数型のほうはこのような格上げってないのでしょうか?
あります。intより小さい整数型は、可変長引数で渡されるときには無条件で
intに格上げされています。
># 変換指定子がhd, ld, lldなどフルにサポートされているからかも・・・
じゃあ変換指定子のhはなんなのか、ということですけど、規格によれば
| 実引数は汎整数拡張に伴って拡張されている。その値を表示する前に
| short int型又はunsigned short int型に戻す変換を行う。
だそうです。%hにでっかい値を渡しても、表示の前に小さくされる、ということですね。