gpt4 book ai didi

带参数列表的 C 执行函数

转载 作者:行者123 更新时间:2023-11-30 14:35:41 24 4
gpt4 key购买 nike

我需要使用参数数组中的参数列表来评估函数,如下例所示:

int compute(...) {
int n;
va_list params;
va_start(params, n);
// some custom computation with no "va" output
va_end(params);
}

还有一些int数组(这是动态数组,不依赖固定大小):

int arr[10] = {0, 1, 3, 7, 8, 1, 3, 5, 7, 9};

我需要像JS函数一样调用compute compute.apply(this, arr)

我正在用 C 实现一些库,这就是我需要它的原因。

在 C++ 中,这是 std::apply但我想在 C 中得到同样的结果。

谢谢

最佳答案

In C++ this is std::apply but I want the same in C.

既然您想要在 C 中实现相同的要求,您肯定会接受必须满足相同的要求,特别是,因为元组 支持std::getstd::tuple_size,它们的 C 等效项。现在,只要按照从第一个到最后一个的顺序访问数组中的参数,就可以使用 va_…() 来实现 std::get,但就像stdarg 变量参数列表需要一些方法来确定参数的数量(例如格式字符串或参数计数),如果没有这样的方法,则无法实现 std::tuple_size 。如果不传递此信息,您将无法完成任务。

关于带参数列表的 C 执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388406/

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