关于c语言中不定参数的处理方法
最近在完成c语言大作业时遇到一个问题,需要在自己创建的图形界面上显示多个字段提示,因为很多地方需要用到,所以打算做成一个函数,例如make_a_windows(3,BLUE,RED,GREEN),make_a_window(1,yellow) 这样实现不定参数的函数调用,所以上网查了一下相关资源,这里推荐一篇比较详细的说明供参考:
(http://plutoblog.iteye.com/blog/1150671)
简单描述一下用法:
void make_a_window(char *s,int n,...){
va_list ss;
int a,b,c,d,e;
char* ch;
va_start(ss,n);
cleardevice();
setcolor(15);
bar(0,0,629,20); /*绘制标题栏*/
bar(0,419,629,439); /*绘制底边栏*/
settextstyle(0,0,2); /*显示标题*/
setcolor(BLUE)
outtextxy(5,1,s);
a=640/n;
b=0;
for(c=0;c<n;c++){
ch=va_arg(ss,char*);
outtext(5+c*a,420);
}
return;
}
如上实现的是一个不定参数的加法函数,用 va_list 定义一个变量,
而后用 va_start(va_list*,s) 来初始化,这里的s要求是最后一个可见参数的名称,随后就可以用 va_arg(va_list*,s) 来访问省略号中的变量了,这里s表示接受参数的类型,每次调用会回传省略号中的下一个参数.