关于c语言中不定参数的处理方法

关于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表示接受参数的类型,每次调用会回传省略号中的下一个参数.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值