stdarg.h 头文件,主要目的是让函数可以接受可变参数。
va_list :用来保存宏va_arg与宏va_end所需信息。
va_start :使va_list指向起始的参数
va_arg :检索参数
va_end :释放va_list
va_copy : 拷贝va_list的内容
double sum(int count,...) { if(count<=0) { return 0; } va_list arg_ptr; va_start(arg_ptr,count); double sum=0; for(double i=0;i<count;i++) { sum+=va_arg(arg_ptr,double); } va_end(arg_ptr); return sum; }
cout<<sum(3,2.3,3.6,6.9)<<endl;//12.8
cout<<sum(2,9.0,89.0)<<endl; //98
cout<<sum(2,9,89)<<endl; //不正常,说明要求的类型很严格