5

可能重复:
是否可以在 C 中使用没有非可变参数的可变参数函数?

是否可以创建不带参数的 C 可变参数函数?

例如:

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;
}
4

1 回答 1

8

不可以。可变参数函数必须有一个或多个命名参数。

自己试试,你会看到类似的东西:

错误:ISO C 在“...”之前需要一个命名参数

于 2012-08-04T20:36:25.890 回答