编写可变参数主要用到下面几个参数
va_start va_end va_list va_arg
参数列表中的参数被存储在va_list中,也就是...代表的那些参数,通过va_arg进行提取,一次提取一个参数,按照va_arg(identify,typename)里typename给出的数据类型解释
这个参数
va_start 和va_end 成对出现
#include <iostream>
#include <stdio.h>
#include <stdarg.h>
using namespace std ;
void printName(int start...){
va_list ap;
va_start(ap,start);
while(true){
char* name=va_arg(ap,char*);
if(name==NULL) break;
cout<<name<<' ';
}
va_end(ap);
}
int main(){
printName(1,"wang","zhang","len","ddd",NULL);
cout<<"\n";
printName(1,"wang","zhang","len",NULL);
return 0;
}