开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-06-08 20:17:34 2769 0
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
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载