提取未确定数目的参数
在标准库的<cstdarg>中专门提供一组宏来访问它们.
例:
void error(int severity ...)
{
va_list ap;
//用va_start初始化ap,第二个参数是函数的最后一个有名的形式参数的名字
va_start(ap,severity);
for(;;){
//宏va_arg是按顺序提取各个无名参数,第二个参数是假定的该无名参数的类型
chap* p = va_arg(ap,char*);
if(p==0)break;
cerr<</cstdarg>
在标准库的<cstdarg>中专门提供一组宏来访问它们.
例:
void error(int severity ...)
{
va_list ap;
//用va_start初始化ap,第二个参数是函数的最后一个有名的形式参数的名字
va_start(ap,severity);
for(;;){
//宏va_arg是按顺序提取各个无名参数,第二个参数是假定的该无名参数的类型
chap* p = va_arg(ap,char*);
if(p==0)break;
cerr<</cstdarg>
<<' ';
}
va_end(ap);//调用va_start后必须用va_end退出
cerr<<'n';
if(severity) exit(severity);
}