可变参数编程

it2022-05-09  41

可变参数列表是通过宏来实现的,这些宏定义于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);}

 

转载于:https://www.cnblogs.com/97-5-1/p/7417275.html


最新回复(0)