可变参数
来源:互联网 发布:南山空同 知乎 编辑:程序博客网 时间:2024/05/01 10:51
关于可变参数的代码实现:
/* 可变参数需要包含一个头文件 :stdarg.h */#include<stdarg.h>#include<stdio.h>#include<stdlib.h>/* ... 代表可变参数 */void myprintf(char *ptstr,...){/*va_list定义: typedef char * va_list;*/va_list ap;//起始点va_start(ap, ptstr);//从ap开始读取ptstrchar flag;while (*ptstr) // \0 的值是 0 所以可以这样写 {flag = *ptstr;//取出字符if (*ptstr != '%'){putchar(flag);//打印字符}else{/* 如果遇到 % 字符则继续向前读取一个字符 */ptstr++; //可能遇到 %d %c %s %% 分几种情况区别对代flag = *ptstr; switch (flag){case 'd':{int data = va_arg(ap, int);//读取下一个参数按照intprintf("%d", data);break;}case 'c':{char ch = va_arg(ap, char);//读取下一个参数按照char printf("%c", ch);break;}case 'f':{float f = va_arg(ap, float);//读取下一个参数按照 float printf("%f", f);break;}case 's':{char *str = va_arg(ap, char *);//读取下一个参数按照char *printf("%s", str);break;}case '%':break;}}ptstr++;}va_end(ap);//结束读取}void main(){printf("printf: 123abc\n");myprintf("myprintf: 123abc\n");printf("printf: 123abc%d\n", 10);myprintf("myprintf: 123abc%d\n", 10);printf("123abc%d%s\n", 10,"sadfsdf");system("pause");}
0 0
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- PHP explode 按照固定字符截字符串成数组
- 【论文笔记】Mutual-Structure for Joint Filtering
- 孙孙啊i之项目实战(四) 广告页制作
- static 全局变量 和 普通全局变量区别
- 旋转字符串
- 可变参数
- js模块化require.js真的蛮有用
- linux中常用的一些命令
- mongodb查看当前操作db.currentOp()
- SparkStreaming基于Kafka Direct
- android 设置自定义dialog大小无效果
- 用unordered_map代替hash_map
- 魔兽世界任务制作教学,已经本人自己服务器中测试
- 一、OOP概念