学习C时,我发现printf
在传递时会收到很多参数。
我不知道C如何实现这样的功能,用户可以根据需要输入多个参数。我也考虑了指针,但仍然没有明智的想法。如果有人对这类功能有任何想法,请告诉我。
答案 0 :(得分:4)
您必须在函数声明中使用...
表示法作为最后一个参数。
请参阅本教程以了解详情:http://www.cprogramming.com/tutorial/c/lesson17.html
答案 1 :(得分:4)
您需要使用va_args,va_list等。 看看这个教程。 http://www.cprogramming.com/tutorial/c/lesson17.html
这应该会有所帮助。
答案 2 :(得分:3)
您使用C varargs
编写可变参数函数。您需要包含stdargs.h
,它使用数据类型为您提供宏来迭代未知大小的参数列表:va_start
,va_arg
和va_end
:{ {1}}。
这是一个无用的函数,它打印出它的可变长度参数列表:
va_list
Here's一个更有趣的例子,证明你可以多次迭代参数列表。
请注意,使用此功能存在类型安全问题; wiki article解决了其中一些问题。
答案 3 :(得分:3)
#include <stdarg.h>
#include <stdio.h>
int add_all(int num,...)
{
va_list args;
int sum = 0;
va_start(args,num);
int x = 0;
for(x = 0; x < num;x++)
sum += va_arg(args,int);
va_end(args);
return sum;
}
int main()
{
printf("Added 2 + 5 + 3: %d\n",add_all(3,2,5,3));
}