C语言可变参数函数怎么写?
来源:互联网 发布:网络隔离器工作原理 编辑:程序博客网 时间:2024/05/29 18:11
这里的可变参数指的是参数的个数和类型不确定,
比如我们熟悉的printf,原型是int printf(const char *format, ...);
那么我们自己怎么实现呢?比如我写个函数名叫foo,参考printf写成如下格式,
void foo(const char *fmt,...){}
然后我们需要使用stdarg.h这个头文件里的va_start,va_end这两个宏
我们写成这样
void foo(const char *fmt,...){ va_list ap; va_start(ap,fmt); va_end(ap);}
va_start目的是用fmt来初始化ap。往后对可变参数的挨个获取,可以使用宏va_arg对ap进行操作来实现。
如果我们不想一个一个获取,就想获取可变参数拼接成的字符串,如printf输出到标准输出的结果那样。
那么我们需要借助vsnprintf这个函数,定义在stdio.h里。
我们写成这样
void foo(const char *fmt,...){ va_list ap; va_start(ap,fmt); char string[128] = {0}; vsnprintf(string,strlen(string)-1,fmt,ap); va_end(ap); printf("%s",string);}
可变参数的用法就是这么的简单,快来试试吧。
阅读全文
0 0
- C语言可变参数函数怎么写?
- C语言写参数可变的函数
- 【C语言】如何写一个参数可变的函数
- c语言可变参数函数
- C语言函数可变参数
- C语言可变参数函数
- C语言可变参数函数
- C语言可变参数函数
- C语言可变参数函数
- C语言可变参数函数
- C语言可变参数函数
- C语言中的可变参数函数
- c语言实现函数可变参数
- C语言可变参数函数实现
- C语言可变参数函数的实现
- C语言可变参数函数的实现
- C语言中的可变参数函数
- C语言函数可变参数详解
- 5分钟学会 CSS Grid 布局
- 挑战3.6.1 Jack Straws(poj 1127)
- 8080端口被占用解决
- git版本控制之忽略规则.gitignore
- jsp页面监测回车
- C语言可变参数函数怎么写?
- 正则表达式
- activiti流程定义部署。
- DedeCMS系统php5.4环境下登录退出后台空白的解决办法说明
- Java 写文件
- Python3.x 迭代器和生成器
- 20-常用对象API(集合框架-JDK5.0特性-ForEach循环) 21-常用对象API(集合框架-JDK5.0特性-函数可变参数). 1 2
- 显著性检测的四种经典方法
- 读《JAVA并发编程的艺术》笔记---第二步,使用jstack查找分析程序运行时线程状态