【发布时间】:2018-03-07 12:22:45
【问题描述】:
在 XS 中,我可以使用 length keyword 将字符串参数的长度传递给 C 函数:
static int foo(const char *s, size_t len)
{
return 1;
}
MODULE = Foo PACKAGE = Foo
void
foo(char *s, STRLEN length(s))
但是,如果我需要在 CODE 块中获取字符串的长度,我该如何获取它?
void
foo(char *s, STRLEN length(s))
CODE:
...
foo(s, ???);
我可以使用 STRLEN_length_of_s 或 XSauto_length_of_s 自动生成的变量
xsubpp 但感觉有点硬编码。有没有办法(可能是预定义的宏)可以用来获取变量名?或者我可以将我自己的名字分配给长度参数吗?还是我需要将参数声明为SV *,然后自己在代码部分使用SvPV 获取长度?
【问题讨论】: