开发者社区 问答 正文

C语言怎么实现函数不定参数

像printf一样,传递的参数个数可以是任意的
比如我想实现一个累加函数 int add()
当调用add(3,5)返回8,调用add(1,2,3)返回6这样的。
想了一会儿感觉没有思路,谢谢啦

展开
收起
a123456678 2016-06-08 20:17:34 2848 分享 版权
1 条回答
写回答
取消 提交回答
  • 我以前写的:Function Pointer Stack in C

    /*
     * 传入一系列处理函数来处理 data
    **/
    
    // 定义
    void todos(int *data, ...)
    {
        va_list ap;
        va_start (ap, data);
        void (*f)() = va_arg (ap, void (*)());
        do {
            (*f)(data);
        } while (NULL != (f = va_arg(ap, void (*)())));
        va_end (ap);
        return;
    }

    // 调用,add3, add5, 是函数,接受一个参数
    todos(&d, add3, add5, add3, NULL);
    具体到我那个链接可以看到。

    2019-07-17 19:32:40
    赞同 展开评论
问答分类:
问答地址: