C++函数参数省略号
int println(const char* fmt, ...);
该省略号表示,C++编译器只会检查函数的第一个参数的数据类型,不会检查剩下的参数个数和数据类型。
在函数中如果要使用可变参数,需要#include<stdarg.h>,在函数中使用va_list类型和va_start、va_arg、va_end 3个宏读取传递到函数中的参数值。
这几个宏的定义如下(在 ANSI C 中):
type va_arg( va_list arg_ptr, type );// va_arg函数将返回 arg_ptr 所指位置的值,并将 arg_ptr 指向下一个参数
void va_end( va_list arg_ptr );
void va_start( va_list arg_ptr, prev_param );将参数arg_ptr设置为可变参数列表的第一个参数。
代码如下
#include<cstdarg>
#include<iostream>
using namespace std;int add(int pre,...)
//求和函数
{va_list arg_ptr;int sum=0;int nArgValue;sum+=pre;va_start(arg_ptr,pre);do{nArgValue=va_arg(arg_ptr,int);sum+=nArgValue; }while(nArgValue!=0);
//自定义结束条件是输入参数为0va_end(arg_ptr);return sum;
}
int main()
{cout<<add(1,2,3,0)<<endl;
//必须以0结尾,因为参数列表结束的判断条件是读到0停止return 0;
}
C++函数参数省略号相关推荐
- java函数参数 省略号_[转] java使用省略号代替多参数.pdf
[转] java使用省略号代替多参数.pdf 还剩 7页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: J2SE 1.5提供了"Varargs ...
- 函数参数中带省略号的用法
[转]函数参数中带省略号的用法 本文摘自CDSN<可变参数学习笔记>,原帖链接:http://topic.csdn.net/t/20041124/09/3582660.html 前言 ...
- 不确定函数参数个数时的处理,va_start和va_end使用详解
引出 在C中,当我们无法确定函数的所有实参的类型和数目时,可以用省略号指定参数表来处理,如: void foo(...); void foo(parm_list,...); 具体怎么使用呢,我 ...
- C/C++语言函数参数里的“...”作用,va_list的使用(stdarg.h)
以Linux "man 手册"里的printf函数声明为例,谈谈我对C语言函数的可变参数的一点理解. printf的函数声明如下:int printf(const char *fo ...
- ioctl 函数 参数 详解
2019独角兽企业重金招聘Python工程师标准>>> ioctl 函数 参数 详解 2009-04-24 11:55 ioctl函数 本函数影响由fd参数引用的一个打开的文件. # ...
- C 求函数参数的平均值
1.题目 使用可变参数,实现函数,求函数参数的平均值. 2.程序代码 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> #includ ...
- Go 学习笔记(65)— Go 中函数参数是传值还是传引用
Go 语言中,函数参数传递采用是值传递的方式.所谓"值传递",就是将实际参数在内存中的表示逐位拷贝到形式参数中.对于像整型.数组.结构体这类类型,它们的内存表示就是它们自身的数据内 ...
- C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)
每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...
- python基础(三元运算+深浅拷贝+函数参数)
三元运算 三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写. 1 书写格式: 2 result = 值1 if 条件 else 值2 3 即如果条件成立,则将值1赋给result ...
- C指针6:指针变量作为函数参数
在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着 ...
最新文章
- 占失物,笔记本电脑电池
- 在Gridview控件中根据Field Name来取得对应列索引
- web图片铺满网页_web单页面实现多个echarts图表铺满整个div(柱状图,折线图,饼形图……)...
- Xilinx软硬IP双管齐下解决音视频处理痛点
- SAP Spartacus 的基于outlet 的页面扩展
- Kalman Filter
- leetcode-54 螺旋矩阵
- Redis有序集合详解
- 关于simulink运行中实时查看数据
- mysql 两张大表关联_MySQL的DropTable影响分析和最佳实践
- mysql 只开放某个表_MySQL只恢复某个库或某张表
- 在计算机网络中通常所说的wlan是指,在计算机网络中,通常所说的WLAN是指()。 - 问答库...
- python 取模_中年大叔学编程-Python的基础语法和运算符
- 天翼网关 ddns设置_为什么说网关在任何工业物联网解决方案中都很重要?
- 区块链开发者平台-u deserved it
- 《东周列国志》第三十六回 晋吕郤夜焚公宫 秦穆公再平晋乱
- 执行git reset --hard后文件的恢复
- 二维小波变换_小波变换完美通俗讲解系列之 (一)
- 一次HDFS JN lag延时问题的排查分析后续:RM陡增traffic的来源分析
- 配置EF Core的DbContext