如何构建一个可以接收3个或4个参数的函数?

时间:2013-12-21 18:45:42

标签: c

我知道这是一个基本问题,

如何构建\编写一个可以接收3个或4个参数的函数?

或者更一般,我如何编写一个可以接收未知数量参数的函数?

谢谢!

3 个答案:

答案 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)

对于更一般的方面,您可以将参数存储在数组中。然后,您可以将数组或数组本身的指针传递给实际函数。这允许您操纵这些参数。