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