C语言的变参列表 va_list
程序员文章站
2022-07-09 20:54:44
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("%s\n",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。
上一篇: 抖音上热门的方法和技巧
下一篇: C#调用默认浏览器打开网页的几种方法
推荐阅读
-
C语言:自己编写的简易ftp客户端,包含(列表,进入目录,上传文件,下载文件,删除文件)功能
-
C语言之利用可变参数列表实现简易的printf
-
C语言中变参函数的实现细节
-
C语言的变参列表 va_list
-
C语言利用va_list、va_start、va_end、va_arg宏定义可变参数的函数
-
c++11通过变参模板实现特殊的数据结构和算法
-
C语言中的可变参数列表
-
C语言编程题--函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
-
C语言:自己编写的简易ftp客户端,包含(列表,进入目录,上传文件,下载文件,删除文件)功能
-
C语言12-main的参数与命令行传参、函数指针