【问题标题】:Is it possible to create a C varargs function with no arguments? [duplicate]是否可以创建不带参数的 C 可变参数函数? [复制]
【发布时间】:2012-08-04 20:34:51
【问题描述】:

可能重复:
Is it possible to have a variadic function in C with no non-variadic parameter?

是否可以创建不带参数的 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;
}

【问题讨论】:

  • 已经有一个关于函数的有效答案。与此相反,仅允许带有 ... 的 vaarg macros。因此,如果您告诉我们您想要实现的目标,可能会有一种方法...
  • 您可以使用虚拟参数和隐藏对虚拟参数的需要的可变参数宏来伪造它。

标签: c


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多