我正在尝试使用带有 Ruby 的内联 C 重写一个高度递归的函数。该函数接受未定义数量的参数,即在 Ruby 中它看起来像这样:
def each_entity(*types)
# Do something and recurse.
end
我正在尝试使用以下代码在 inline C 中模仿这一点:
VALUE each_entity_c(int argc, VALUE *argv)
{
// ...
}
但这会产生编译错误:
inline.rb:486:in `ruby2c': Unknown type "VALUE *" (ArgumentError)
这是在 C 中完成此任务的正确方法吗?如果是这样,什么可能导致此错误?如果没有,它是如何完成的?