博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++可变参数(示例)
阅读量:4349 次
发布时间:2019-06-07

本文共 823 字,大约阅读时间需要 2 分钟。

#include "stdafx.h"#include 
// 必须包含的头文件#define ADD(int_params,...) Add(int_params,__VA_ARGS__,0)//_VA_ARGS__,这个宏可以取到变参int Add(const int start,...);int _tmain(int argc, _TCHAR* argv[]){ int i = ADD(1,2,3,4,5,6,7,8,9); int q = Add(1,2,3,4,5,6,7,8,9,0); return 0;}int Add(const int start,...) // ...是作为占位符{ va_list arg_ptr; // 定义变参起始指针 int sum = 0; int nArgValue = start; va_start(arg_ptr,start); // arg_ptr指向第一个变参,即start后面那个参数 while(arg_ptr != NULL) { sum+=nArgValue; // 求和 nArgValue = va_arg(arg_ptr,int); // arg_ptr指向下一个变参 if(nArgValue == 0) // 判断结束条件;结束条件是自定义为=0时结束 break; } va_end(arg_ptr); // 复位指针 return sum; }

 

转载于:https://www.cnblogs.com/touch-skyer/p/6378685.html

你可能感兴趣的文章
JavaScript 数据类型
查看>>
SQLite数据库
查看>>
day16_集合框架3(HashMap,TreeMap)
查看>>
db file parallel write等待事件
查看>>
甲骨文发布2012 1月数据库安全补丁Critical Patch Update January 2012
查看>>
小小递归程序
查看>>
VirtualBox中的虚拟机在Ubuntu 下无法启动之问题解决
查看>>
信息增益与决策树
查看>>
[译]Vulkan教程(29)组合的Image采样器
查看>>
combox的DispalyMember和ValueMember属性的测试
查看>>
Start Developing Mac Apps -- Human Interface Design 用户界面设计
查看>>
linux下安装Mongodb
查看>>
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>
bzoj3261: 最大异或和 可持久化trie
查看>>
ZOJ 2532 Internship
查看>>
HDU 3452 Bonsai
查看>>
[Erlang12] Mnesia分布式应用
查看>>
图的遍历 | 1013 连通块块数
查看>>
Kinect 开发 —— 进阶指引(上)
查看>>