gpt4 book ai didi

c - C 中参数数量未知的函数

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

我如何编写(如果可能的话...)在 C99 中采用未知数量参数的函数(返回类型为常量)?

最佳答案

是的,您可以使用所谓的可变参数函数在 C 中完成。标准 printf() scanf() 例如,函数就是这样做的。

将省略号(三个点)作为最后一个参数,您希望“参数的数量可变”。

访问参数包括 <stdarg.h> header :

#include <stdarg.h>

然后你有一个特殊类型 va_list它为您提供了传递的参数列表,您可以使用 va_start , va_argva_end循环访问参数列表的宏。

例如:

#include <stdarg.h>

int myfunc(int count, ...)
{
va_list list;
int j = 0;

va_start(list, count);
for(j=0; j<count; j++)
{
printf("%d", va_arg(list, int));
}

va_end(list);

return count;
}

调用示例:

myfunc(4, -9, 12, 43, 217);

可以在 Wikipedia 找到完整的示例.

count示例中的参数告诉被调用函数传递了多少参数。 printf()scanf()通过格式字符串找到它,但是一个简单的 count争论也可以做到。有时,代码会使用标记值,例如负整数或空指针(请参阅 execl() 例如)。

关于c - C 中参数数量未知的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071186/

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