可变参数编程
Posted 邢亚柯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可变参数编程相关的知识,希望对你有一定的参考价值。
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h 头文件中。
这个头文件声明了一个类型va_list 和 三个宏 va_start 、va_arg 和 va_end。
我们可以声明一个类型为va_list 的变量,与这几个宏配合使用,访问参数的值。
1、求平均值
2、求最大值
3、实现一个简化的print 函数
void Print(char *str,...)
{
va_list list;
va_start(list,str);
char ch;
char *p;
int m;
double n;
while(*str != \'\\0\')
{
if(*str == \'%\')
{
switch(*(str+1))
{
case \'c\': ch = va_arg(list,char);
putchar(ch);
str += 2;
break;
case \'s\': p = va_arg(list,char*);
printf("%s",p);
str += 2;
break;
case \'d\': m = va_arg(list,int);
printf("%d",m);
str += 2;
break;
case \'f\': n = va_arg(list,double);
printf("%f",n);
str += 2;
break;
default : putchar(*str++);
break;
}
}
else
putchar(*str++);
}
}
int main()
{
char *p = "avc";
int b = 9;
double m = 0.9;
char c = \'a\';
Print("%s,%d,%c,%f\\n",p,b,c,m);
}
以上是关于可变参数编程的主要内容,如果未能解决你的问题,请参考以下文章