gpt4 book ai didi

duktape - 您如何使用 duktape 制作带有可变数量参数的 native javascript 函数?

转载 作者:行者123 更新时间:2023-12-03 20:21:15 26 4
gpt4 key购买 nike

使用 duktape javascript 实现,您可以将 native C 函数公开给 javascript 并像这样实现它们:

static duk_ret_t native_prime_check(duk_context *ctx) {
int arg1 = duk_require_int(ctx, 0);
int arg2 = duk_require_int(ctx, 1);
// do something.
return 0;
}

在公开 native 函数时,我们需要指定参数的数量。
duk_push_c_function(ctx, native_prime_check, 2 /*nargs*/);

请举例说明如何制作一个带有可变数量参数的 C 函数,并使用 duktape 将其公开给 Javascript。

最佳答案

当你推送一个 C 函数时,你也可以给出 DUK_VARARGS作为参数计数。当你这样做时,值堆栈将直接包含调用参数,duk_get_top(ctx)给你给出的参数数量:

static duk_ret_t dump_args(duk_context *ctx) {
duk_idx_t i, nargs;
nargs = duk_get_top(ctx);
for (i = 0; i < nargs; i++) {
printf("type of argument %d: %d\n", (int) i, (int) duk_get_type(ctx, i));
}
}

duk_push_c_function(ctx, dump_args, DUK_VARARGS);

关于duktape - 您如何使用 duktape 制作带有可变数量参数的 native javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com