概述
int max(int count, ...){
va_list ap;//1)定义一个可变参数,这个地方其实是一个指针,用于访问可变参数中的参数列表
va_start(ap,count);//2)初始化可变参数,并把刚定义的指针指向第一个参数。
int maximum = -1;//假设这都是正整数求最大值,如果不是,就可以把maximum设为最大的负数
int temp,i;
#if 1
for(i = 0; i < count; i++) {
temp = va_arg(ap, int);//从可变参数列表指针的当前位置获取一个int型参数,并把指针指向下一个参数。
if(maximum < temp)
maximum = temp;
}
#endif
va_end(ap);//结束
return maximum;
}
void f(char *fmt, ...)
{va_list ap;
va_start(ap, fmt);
printf("va_start:%p",ap);
char* p = fmt;
while (*p) {
if (*p == '%' && *(p+1) == 'd') {
printf("参数类型为int,值为 %dn", va_arg(ap, int));
printf("va_arg:%p",ap);
}
else if (*p == '%' && *(p+1) == 's') {
printf("参数类型为char*,值为 %sn", va_arg(ap, char*));
printf("va_arg:%p",ap);
}
else if (*p == '%' && *(p+1) == 'f') {
printf("参数类型为double,值为 %fn", va_arg(ap, double));
printf("va_arg:%p",ap);
}
p++;
}
va_end(ap);
}
int main()
{
printf("max is :%dn",max(2,2,3));
f("%d,%f,%s,%d", 100, 1.23, "hello world", 200);
return 0;
}
最后
以上就是尊敬老师为你收集整理的可变参数的使用的全部内容,希望文章能够帮你解决可变参数的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复