可变参数
C++的可变参数模板不在本文讨论范围,只用了C的可变参数 ...
做了如下约定:
- 第一个函参是参数个数
- 所有可变参数都是size_t类型
#include<stdarg.h> //for va_start等 #include<vector> void add(size_t count,...) //第1个参数只是一个标识(个数),之后是真正的参数(约定所有参数类型为size_t) { va_list args; va_start(args, count); std::vector<size_t> v; //参数都存在这里 for (int i = 0; i < count; i++) { v.emplace_back(va_arg(args, size_t)); } va_end(args); switch (count) { case 2: std::cout << v[0] + v[1] << std::endl; break; case 3: std::cout << v[0] + v[1] + v[2] << std::endl; break; default: break; } } int main() { add(2, 10, 11); //21 add(3, 2, 3, 5); //10 return 0; }
分类:
C++基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?