RubyでインラインCを使って再帰性の高い関数を書き直そうとしています。この関数は未定義の数の引数を受け入れます。つまり、Ruby では次のようになります。
def each_entity(*types)
# Do something and recurse.
end
次のコードを使用して、インライン C でこれを模倣しようとしています。
VALUE each_entity_c(int argc, VALUE *argv)
{
// ...
}
しかし、これはコンパイルエラーを引き起こします:
inline.rb:486:in `ruby2c': Unknown type "VALUE *" (ArgumentError)
これはCでこれを達成する正しい方法ですか? もしそうなら、このエラーの原因は何ですか? そうでない場合、それはどのように行われますか?