可变参数
来源:互联网 发布:淘宝上买到假货仅退款 编辑:程序博客网 时间:2024/05/29 13:11
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数列表中的参数,必须声明
va_list类型的一个对象 定义: typedef char * va_list;
va_start:访问变长参数列表中的参数之前使用的宏,它初始化用va_list声明的对象,初始化结果供宏va_arg和
va_end使用;
va_arg: 展开成一个表达式的宏,该表达式具有变长参数列表中下一个参数的值和类型。每次调用va_arg都会修改
用va_list声明的对象,从而使该对象指向参数列表中的下一个参数;
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数列表中的参数,必须声明
va_list类型的一个对象 定义: typedef char * va_list;
va_start:访问变长参数列表中的参数之前使用的宏,它初始化用va_list声明的对象,初始化结果供宏va_arg和
va_end使用;
va_arg: 展开成一个表达式的宏,该表达式具有变长参数列表中下一个参数的值和类型。每次调用va_arg都会修改
用va_list声明的对象,从而使该对象指向参数列表中的下一个参数;
va_end:该宏使程序能够从变长参数列表用宏va_start引用的函数中正常返回。
void myfun(char *str, ...){printf("str:%s\n", str);va_list arg;va_start(arg, str);while (true){str = va_arg(arg, char *);if (strcmp(str, "\0") == 0){break;}printf("%s\n", str);}va_end(arg);}voidfoo(char *fmt, ...){va_list ap;int d;char c, *s;va_start(ap, fmt);while (*fmt)switch (*fmt++) {case 's': /* string */s = va_arg(ap, char *);printf("string %s\n", s);break;case 'd': /* int */d = va_arg(ap, int);printf("int %d\n", d);break;case 'c': /* char *//* need a cast here since va_arg onlytakes fully promoted types */c = (char)va_arg(ap, int);printf("char %c\n", c);break;}va_end(ap);}
0 0
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- 可变参数
- HDU 4614
- ios app 应用内购买配置完全指南
- 这就是自己的第一篇博客吧,随便聊聊
- 判断IP地址是否正确
- 微信开发(八)自动回复和多客服开发
- 可变参数
- MYSQL 的主主同步配置及问题
- Linux程序崩溃(segment fault)原因的调试
- intellij idea14 +tomcat7 ssh2 启动项目失败解决办法
- Python 配置文件的操作
- width、innerWidth、outerWidth(1)
- oracle中游标的使用
- 判断字符串是否为数字
- 解决通比牛牛dv,当全部玩家快速点开始按钮开始游戏时,玩家所发的牌有包括上局的牌,并且崩溃