函数可变参数

方法一:可变模版参数方法

#include <iostream>
void testFunction_2()   //递归终止函数
{
    
    

}
template <class T1,class...T2>
void testFunction_2(T1 p,T2... args)
{
    
    
    cout<<p<<"   para count:"<<sizeof... (args)<<endl;
    testFunction_2(args...);    //递归打印
}
int main ( int argc, char** argv)
{
    
    
        testFunction_2(1,2,"3333test",4,"55",6);
    return 0;
}

方法二:标准库initializer_list方法

#include <initializer_list>

template<typename T>
void ParaDebug::showData(std::initializer_list<T> tList)
{
    
    
    T iterData = tList.begin();
    while ((iterData < tList.end())
    {
    
    
        iterPara->setData(iterData);    //使用
        iterData ++;
    }
}

方法三:

#include <stdarg.h>
void testFunction_1(int arg1,...)
{
    
    
    va_list ap;
    int i;
    va_start(ap, arg1);
    for (i = arg1; i != -1; i = va_arg(ap, int))
    printf("%d ", i);
    va_end(ap);
    putchar('\n');
}
int main ( int argc, char** argv)
{
    
    
    testFunction_1(1,2,3,4,5,6,7,1,1,1,11,1,-1);
    return 0;
}

おすすめ

転載: blog.csdn.net/weixin_42887343/article/details/121355229