C语言可变参数函数解决办法
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();
}
------解决方案--------------------
代码有误
我照着以前看过的一段程序,模仿的写了一段程序,功能类似于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; }