C++ 中获取 可变形参函数中的参数

#include <iostream>
#include <stdarg.h>

using namespace std;

int ArgFunc(const char * str, ...)
{
	va_list ap;			 // 定义参数列表变量

	va_start(ap, str); 	 // 确定参数位置,表明从 str 开始获取参数

	// 开始获取参数    var_arg(ap, 数据类型)  返回获取的值
	cout<<va_arg(ap, int)<<endl;
	cout<<va_arg(ap, int)<<endl;

	// 因为只传入两个参数,所以这里获取到的数值为 零
	cout<<va_arg(ap, int)<<endl;
	cout<<va_arg(ap, int)<<endl;

	va_end(ap);			// 将参数列表 ap 清零

	return 0;
}

int main()
{

	ArgFunc("func", 10, 20);   // 数据从右往左 压入 栈中 ,栈顶元素为 "func"

	return 0;
}

/*****************************************************
*
*         获取可变参数
*
*  1. 包含头文件:#include <stdarg.h>
*  2. 定义 参数列表变量:va_list ap;
*  3. 确定从哪里开始获取数据    va_start(ap, str); 表示在str参数之后开始获取参数。
*  4. 开始获取参数并指明类型,如:va_arg(ap, int); 获取第一个参数,并指明类型为 int
*  5. 清空列表  va_end(ap);
*
******************************************************/

运行结果:

C++ 中获取 可变形参函数中的参数,布布扣,bubuko.com

时间: 2024-08-02 15:12:39

C++ 中获取 可变形参函数中的参数的相关文章

C++ 中获取 可变形參函数中的參数

#include <iostream> #include <stdarg.h> using namespace std; int ArgFunc(const char * str, ...) { va_list ap; // 定义參数列表变量 va_start(ap, str); // 确定參数位置.表明从 str 開始获取參数 // 開始获取參数 var_arg(ap, 数据类型) 返回获取的值 cout<<va_arg(ap, int)<<endl; c

在C#中获取如PHP函数time()一样的时间戳

原文:在C#中获取如PHP函数time()一样的时间戳 c#中没有象PHP一样的time()时间戳函数,但有DateTime.Now.Ticks用来计算时间差. 此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字.dotnet下用DateTime.Now.Ticks能够得到精确的时间,单位是10^-7s. 经过实验,发现 long a=(DateTime.Now.Ticks-aa.Ticks)/10000000-8*60*60; tb

从O365中获取users到D365中 使用flow

在我上篇blog中讲解到了怎么用代码把O365 users 获取到D365中. 从O365中获取users到D365中 这几天一直在研究flow, 发现flow可以更简单的完成这个功能. 一开始没有考虑用flow是因为flow获取所有用户的方式比较困难, 需要有个workaround (首先需要把所有用户添加到一个group当中,然后获取group member list) 首先我们需要使用Search for users (v2) 只有V2 版本可以直接获取所有的users 在一个list当中

mysql中获取时间的函数

今天做项目,有一个获取七天前日期的数据的一个需求.然后就百度mysql中关于时间的函数.收集了一些.现记录如下: 参考地址:http://www.w3school.com.cn/sql/sql_dates.asp -- 获取当前时间SELECT NOW() SELECT CURDATE()SELECT CURRENT_DATE()SELECT CURRENT_TIME()SELECT CURRENT_TIMESTAMP()SELECT CURTIME() -- DATE_SUB() 函数从日期减

PHP中CURL方法curl_setopt()函数的一些参数

转载自http://blog.csdn.net/superbirds/article/details/7532277 bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值. 下列选项的值将被作为长整形使用(在option参数中指定):     •    CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,

PHP中CURL方法curl_setopt()函数的一些参数 (转)

bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值. 下列选项的值将被作为长整形使用(在option参数中指定):     •    CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小. •    CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事

python中print()函数的“,”与java中System.out.print()函数中的“+”

python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出结果为:hello,world! java中: System.out.print("hello,world!"); 输出结果为:hello,world! 我们可以看到,这两个函数的用法是一样的 print()函数还有这种用法: print("1+1=",1+1) 输出结

spring中获取dao或对象中方法的实例化对象

spring中获取dao的中方法的实例化对象: 1 //获取应用上下文对象 2 ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml"); 3 //例子:获取dicDao实例 4 dicDao = ctx.getBean(IDicDao.class); //例子2:获取MemcacheAccess的实例: 5 memcachedAccess = ctx.getBean(Memcach

spring boot拦截器中获取request post请求中的参数

最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取到参数,post是不行的,后来想到了使用流的方式,调用request.getInputStream()获取流,然后从流中读取参数,如下代码所示: String body = ""; StringBuilder stringBuilder = new StringBuilder(); Buf