是否有可能创建一个没有参数的C varargs函数?
问题描述:
Possible Duplicate:
Is it possible to have a variadic function in C with no non-variadic parameter?是否有可能创建一个没有参数的C varargs函数?
是否有可能创建一个没有参数的C varargs函数?
例如:
int foo(...);
我想要做的东西像下面这样:
list* create_list(...){
list *mylist = list_create();
void *current_arg = va_arg(void*);
while (current_arg != NULL){
list_add(mylist, current_arg);
current_arg = va_arg(void*);
}
return mylist;
}
答
号可变参数的函数必须有一个或多个命名参数。
自己尝试一下,你会看到类似这样的:
error: ISO C requires a named argument before '...'
已经有关于功能的有效的答案。与此相反,仅允许使用'...'的vaarg *宏*是允许的。所以,如果你想告诉我们你想达到什么目的,可能有办法...... – 2012-08-04 20:40:09
你可以用一个伪参数和一个可变参数伪造伪参数。 – 2012-08-04 20:44:39