diff options
Diffstat (limited to 'README.EXT.ja')
-rw-r--r-- | README.EXT.ja | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/README.EXT.ja b/README.EXT.ja index d4d1e61980..2e4ac3c895 100644 --- a/README.EXT.ja +++ b/README.EXT.ja @@ -140,13 +140,15 @@ var は lvalue である必要があります. あるのは文字列と配列くらいだと思います. ruby.hでは構造体へキャストするマクロも「RXXXXX()」(全部大文 -字にしたもの)という名前で提供されています(例: RSTRING()). +字にしたもの)という名前で提供されています(例: RSTRING()).た +だし、構造体への直接のアクセスはできるだけ避け,対応する +rb_xxxx() といった関数を使うようにして下さい.例えば,配列の +要素へアクセスする場合は,rb_ary_entry(ary, offset), +rb_ary_store(ary, offset, obj) を利用するようにして下さい. 構造体からデータを取り出すマクロが提供されています.文字列 strの長さを得るためには「RSTRING_LEN(str)」とし,文字列strを -char*として得るためには「RSTRING_PTR(str)」とします.配列の -場合には,それぞれ「RARRAY_LEN(ary)」,「RARRAY_PTR(ary)」と -なります. +char*として得るためには「RSTRING_PTR(str)」とします. Rubyの構造体を直接アクセスする時に気をつけなければならないこ とは,配列や文字列の構造体の中身は参照するだけで,直接変更し @@ -310,6 +312,10 @@ rb_ary_entry(VALUE ary, long offset) ary[offset] +rb_ary_store(VALUE ary, long offset, VALUE obj) :: + + ary[offset] = obj + rb_ary_subseq(VALUE ary, long beg, long len) ary[beg, len] |