stdarg.h头

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; //不正常,说明要求的类型很严格

原文地址:https://www.cnblogs.com/hometown/p/3421867.html