急!请高手指教c++如何定义一个参数个数不确定的函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!请高手指教c++如何定义一个参数个数不确定的函数?相关的知识,希望对你有一定的参考价值。
请高手指教c++如何定义一个参数个数不确定的函数?
该函数参数不确定,没有具体的参数,请高手指教.(请给个列子)
VA_LIST是在C语言中解决变参问题的一组宏,所在头文件:#include <stdarg.h>,用于获取不确定个数的参数。
VA_LIST的用法:
首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;
然后用VA_START宏初始化刚定义的VA_LIST变量;
然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型(如果函数有多个可变参数的,依次调用VA_ARG获取各个参数);
最后用VA_END宏结束可变参数的获取。
以下是一个定义一个参数个数不确定的函数的简单例子:
#include <cstdarg>#include <iostream>
using namespace std;
double average ( int num, ... )
va_list arguments; // A place to store the list of arguments
double sum = 0;
va_start ( arguments, num ); // Initializing arguments to store all values after num
for ( int x = 0; x < num; x++ ) // Loop until all numbers are added
sum += va_arg ( arguments, double ); // Adds the next value in argument list to sum.
va_end ( arguments ); // Cleans up the list
return sum / num; // Returns some number (typecast prevents truncation)
int main()
cout<< average ( 3, 12.2, 22.3, 4.5 ) <<endl;
cout<< average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) <<endl;
参考技术A 可以用重载函数, 把你这个函数不确定的个数或者参数不一样都可以定义一遍,遇到你输入的参数,他会自己找匹配的运行. 参考技术B #include <iostream>
#include <cstdarg> //contain va_start,va_arg,va_end
using namespace std;
int sum(int num, ...)
va_list parg;
int arg;
int s;
int i;
va_start(parg, num);
for (s = 0, i = 0; i < num; i++)
arg = va_arg(parg, int);
s += arg;
va_end(parg);
return s;
int main()
cout<<sum(1,1)<<endl; //1
cout<<sum(2,1,2)<<endl; //1+2
cout<<sum(3,1,2,3)<<endl; //1+2+3
cout<<sum(4,1,2,3,4)<<endl;//1+2+3+4
return 0;
va_list(用于定义va_list型变量,该变量作为引用的指针)、va_start(用于建立扫描参数表的起始指针)、va_arg(用于解析参数表中的参数,接受一个va_list型变量和下一个希望出现的数据类型)和va_end(顾名思义)。 参考技术C int c
我都不知道怎么回答你的问题了
新建域服务器后无法在Users里新建用户请高手指教
新建域服务器后无法在Users里新建用户请高手指教
提示“无法更新密码,为新密码提供的值不符合字符域的长度、复杂性或历史要求”
急
密码已经很长了又有字母又有数字都不行
用的是Administrator用户
以上是关于急!请高手指教c++如何定义一个参数个数不确定的函数?的主要内容,如果未能解决你的问题,请参考以下文章