我知道这是一个基本问题,
如何构建\编写一个可以接收3个或4个参数的函数?
或者更一般,我如何编写一个可以接收未知数量参数的函数?
谢谢!
答案 0 :(得分:5)
要定义具有未知数量参数的函数,必须知道第一个参数。然后你必须包含stdarg.h
库来使用它的函数访问参数:va_start,va_args,va_en和类型va_list。
通常,函数以这种方式定义。请注意,第一个参数并不总是int
类型。你可以const char *
对你的论点进行更多的控制。例如printf()
函数。
type myFunction(int n, ...)
{
int i;
va_list args;
va_start(args, n);
for (i=0; i<n; i++){
// your argument is va_arg(args, int);
//... do something with your aruments
}
va_end(args);
// return your value
}
查看这些资源,详细了解stdarg.h
http://www.cplusplus.com/reference/cstdarg/
或http://en.wikipedia.org/wiki/Stdarg.h
答案 1 :(得分:4)
您需要一个具有可变参数列表的函数。使用省略号来定义它:
void foo(int first, ...)
{
}
使用var_args
来解析参数。第一个参数通常用于
答案 2 :(得分:0)
对于更一般的方面,您可以将参数存储在数组中。然后,您可以将数组或数组本身的指针传递给实际函数。这允许您操纵这些参数。