gpt4 book ai didi

c - 如何将数组作为参数传递给 vararg 函数?

转载 作者:太空狗 更新时间:2023-10-29 16:56:03 26 4
gpt4 key购买 nike

我有一些看起来像这样的代码:

uint8_t activities[8];
uint8_t numActivities = 0;
...
activities[numActivities++] = someValue;
...
activities[numActivities++] = someOtherValue;
...
switch (numActivities)
{
0 : break;
1 : LogEvent(1, activities[0]); break;
2 : LogEvent(1, activities[0], activities[1]); break;
3 : LogEvent(1, activities[0], activities[1], activities[2]); break;
// and so on
}

其中 LogEvent() 是一个可变参数函数。

有没有更优雅的方法来做到这一点?


[更新] 向@0x69 等人致歉。我省略了说有很多情况下 LogEvent() 不能将数组作为参数。对不起。

最佳答案

没有标准的方法来构建或操作 va_args 参数,甚至将它们传递给另一个函数(Standard way to manipulate variadic arguments?C Programming: Forward variable argument list)。您最好看看是否可以访问 LogEvent 的内部例程。

关于c - 如何将数组作为参数传递给 vararg 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14705920/

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