繁体   English   中英

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

[英]Passing a variable-length argument to a function without checking the length of it?

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

您总是可以在列表的末尾添加一个特殊的“标记”参数,以表明它已完成,例如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];
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM