我在纯Perl中有一个复杂的编码函数,我正在将其转换为XS,希望获得性能提升。
我要转换为XS的函数需要递归地调用自己。我可以看到如何使用call_sv[感谢"man perlcall"]来调用纯Perl函数。
但是我到底如何在XS中调用我自己(或任何其他XS函数)?
(注:效率是非常可取的…)
谁能给我点提示吗?或者举个例子?P-p-p-please !更新:第一个答案绝对正确。调用递归的纯C函数工作得很好
不要。XS是一种向C函数提供Perl接口的机制。不要从C函数中调用XS函数(您可以使用call_sv
或类似的函数);从XS函数中调用C函数
编写递归C函数,并将其保存在XS代码之外(在MODULE =
行之前或在单独的.c
中)。从一个瘦XS包装器调用它。