读书人

C语言可变参数函数解决办法

发布时间: 2012-02-14 19:19:19 作者: rapoo

C语言可变参数函数
我照着以前看过的一段程序,模仿的写了一段程序,功能类似于PRINTF函数

但是写完后,在WIN——TC上编译运行,却得不到所想要的结果
请各位高手指点
头文件已经加过,再此不在列出
void va_fun(char msg, ...); /*函数声明*/
void va_fun(char msg, ...)
{
va_list argp; /* 定义保存函数参数的结构,实际是一指针*/
int argno=0; /* 记录参数的个数*/
char parameter;/* 存放去取出的字符串参数*/
va_start(argp,msg);
//while(1)
{
parameter=va_arg(argp,char);
if(strcmp(parameter," ")==0) break;/*采用空串做为结束标志*/
printf("Parameter #%d is: %s\n",argno,parameter);
argno++;
}
va_end(argp);
}

void main(void)
{

va_fun("this","is","a","program"," ") ;
getch();

}

[解决办法]
代码有误

C/C++ code
void va_fun(char* msg, ...){    va_list argp;  /* 定义保存函数参数的结构,实际是一指针*/    int argno=0;   /*  记录参数的个数*/    char* parameter;/* 存放去取出的字符串参数*/    va_start(argp,msg);      while(true){        parameter=va_arg(argp,char*);        if(strcmp(parameter," ")==0)break;/*采用空串做为结束标志*/            printf("Parameter #%d is: %s\n",argno,parameter);        argno++;    }    va_end(argp);}int main(int argc, char *argv[]){    va_fun("this","is","a","program"," ") ;    return 0;} 

读书人网 >C语言

热点推荐