7

我在 Pure Perl 中有一个复杂的编码函数,我正在将其转换为 XS,以期获得性能提升。

我正在转换为 XS 的函数需要递归调用自身。我可以看到如何使用 call_sv [感谢“man perlcall”] 来调用纯 Perl 函数。

但是我怎么在 XS 中调用自己(或任何其他 XS 函数)呢?

(PS效率非常可取……)

有人可以给我一个提示吗?还是一个例子?求求你!

更新:第一个答案是绝对正确的。调用递归纯 C 函数就可以了。

4

1 回答 1

10

不。XS 是一种为 C 函数提供 Perl 接口的机制。不要从 C 函数中调用 XS 函数(你会使用call_sv或类似的函数);从 XS 函数调用 C 函数。

编写递归 C 函数并将其保留在 XS 代码之外(MODULE =在行之前或单独的.c. 从薄 XS 包装器中调用它。

于 2013-04-19T06:08:51.927 回答