なかだです。

At Tue, 13 Sep 2005 13:22:26 +0900,
H.Yamamoto wrote in [ruby-dev:27055]:
> なぜ警告が出るのか探していて見つけたのですが、
> 
> http://wisdom.sakura.ne.jp/programming/c/c13.html
> 
> によると、int から char への変換は下位8ビットをマスクしたのと同じ挙動を
> 示すそうです。(言われてみると納得できる気もするのですが、なんか意外でした。
> C++ の bool のような感覚で、なんとなく非負の int は非負の char になるように思い込んでました。)

CHAR_BIT == 8 の場合は、ですね。

> 符合があるときもこの挙動なのか、よく調べてませんが、これが本当なら
> marshal.c の & 0xff は char へのキャストに置き換えられると思います。

だから、厳密にいうとまったく同じとはいえませんが、この場合はむ
しろキャストのほうが適切だと思います。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦