变长参数表
来源:互联网 发布:万网云服务器解析域名 编辑:程序博客网 时间:2024/05/17 07:17
我们以实现函数printf的一个最简单的版本为例,体验下如何以可一直的方式编写可处理变长参数表的函数。因为我们的重点在于参数的处理,所以,函数minprintf只处理格式字符串和参数,格式转换则通过调用函数printf实现
#include <stdio.h>#include <stdlib.h>#include <stdarg.h>void minprintf(char *fmt, ...){ va_list ap; char *p, *sval; int ival; double dval; va_start(ap,fmt); for(p=fmt;*p;p++){ if(*p!='%'){ putchar(*p); continue; } switch(*++p){ case 'd': ival = va_arg(ap,int); printf("%d",ival); break; case 'f': dval =va_arg(ap,double); printf("%f",dval); break; case 's': for(sval=va_arg(ap,char *);*sval;sval++) putchar(*sval); break; default: putchar(*p); break; } } va_end(ap);}int main(int argc,char *argv[]){ minprintf("%s","hello world!"); return 0;}
0 0
- 变长参数表
- 变长参数表
- 变长参数表
- 关于变长参数表的
- 命令行参数和变长参数表
- 5.2 变长参数表(函数的实参个数可变)编程示例
- 变长参数表:<stdarg.h>介绍及在iOS中应用
- 【C】变长参数表及printf函数简化版的实现
- C语言中变长参数表printf的实现和参数入栈次序之间的关系
- C程序设计语言- 输入与输出-6.1----标准输入与输出、格式化输出(printf)、变长参数表、格式化输入(scanf)、文件访问
- SendMessage参数表
- 三极管参数表
- 参数表设置
- 硬盘参数表
- ldapsearch 参数表
- Jqgrid参数表
- PT2262参数表
- 参数表函数
- Java 中的 long 与 byte 互转
- powerdesigner 模块转换
- 使用控件时提示"未声明标识符"的解决方法
- 动态规划——利润分配问题
- 第二次发标题HAHAHA
- 变长参数表
- 在JAVA中如何跳出当前的多重嵌套循环?
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- HYSBZ 2243 染色
- Service具体使用讲解
- Adapter报错:The content of the adapter has changed
- CentOS 7 中文正式版下载 - 最流行的免费开源企业级 Linux 服务器操作系统
- BZOJ 3040 最短路(road) 堆优化Dijkstra
- DigitalOcean初始化--使用SSH Keys登录(Windows篇)