From: "とみたまさひろ" Date: 2008-06-22T11:17:36+09:00 Subject: [ruby-dev:35197] FIX2INT -> FIX2LONG とみたです。 r17145 でREADME.EXT.ja が更新されましたが、 # 日記のぼやきを拾っていただいてありがとうございます。 32bit: sizeof(long) == sizeof(int) なので FIX2INT() と FIX2LONG() は同じ。 64bit: int に収まらない FIXNUM を FIX2INT() で変換すると例外になる。 …ということで、FIXNUM からの変換は FIX2INT() じゃなく FIX2LONG()の方が 良いと思います。 Index: README.EXT.ja =================================================================== --- README.EXT.ja (revision 17534) +++ README.EXT.ja (working copy) @@ -103,7 +103,7 @@ 持つ整数です.longのサイズが32bitのプラットフォームであれば 31bitに, longのサイズが64bitのプラットフォームであれば63bit になります. FIXNUM を C の整数に変換するためにはマクロ -「FIX2INT()」を使います.それから,FIXNUMに限らずRubyのデー +「FIX2LONG()」を使います.それから,FIXNUMに限らずRubyのデー タを整数に変換する「NUM2INT()」というマクロがあります.この マクロはデータタイプのチェック無しで使えます(整数に変換でき ない場合には例外が発生する).同様にチェック無しで使える変換 -- とみたまさひろ 3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040