c/c++语言开发共享C语言的变参列表 va_list

1. va_list的基本原理和用法: 2. va_list 与 vsprintf 配合使用: 这也正是 printf 的原理。 扩展:Modern C++中的 initializer_list。 …

1. va_list的基本原理和用法:

#include<stdio.h>  #include<stdarg.h>  void func(int i,char *ch,...){    //format      va_list ap;      va_start(ap,ch);              // 指向某一个参数,从此开始      char *str;      str=ch;      do{          printf("%s ",str);          str=va_arg(ap,char*);     // 需要指定参数类型为char*型,不够灵活      }while(str);  }  int main()  {        func(1,"a","b",null);      return 0;  }

2. va_list 与 vsprintf 配合使用:

#include<stdio.h>  #include<stdarg.h>  void func(int i,char *fmt,...){     //format      va_list ap;      va_start(ap,fmt);      char str[20];      vsprintf(str, fmt, ap);      va_end(ap);      printf("%sn",str);  }  int main()  {        char str1[]="str1";      char str2[]="str2";      int d=1000;      func(1,"%s %s %d",str1,str2,d);      return 0;  }

这也正是 printf 的原理。

扩展:modern c++中的 initializer_list。

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/602608.html

(0)
上一篇 2021年5月11日
下一篇 2021年5月11日

精彩推荐