将可变长度参数传递给函数而不检查它的长度?

时间:2011-08-21 11:01:53

标签: c

我可以将一个可变长度的参数传递给函数而不检查它的长度! 那是我可以创建一个List或其他东西,并将它传递给一个可变长度的参数函数。 我知道我们可以通过va_list来实现这个功能; 但现在, 我们得到一个参数列表,我们需要计算长度,然后我们应该定义一些变量,并传递它们, 我们可以让它更方便吗?

1 个答案:

答案 0 :(得分:1)

您始终可以在列表末尾添加一个特殊的“marker”参数,表示它已完成,如NULL

char **args = { "one", "two", NULL }
function( args );
...
void function ( char **args ) {
  char *p;
  int i = 0;
  p = args[i];
  while( p != NULL) {
    ...
    i++;
    p = args[i];
  }
}