va_arg
来源:互联网 发布:java离线安装包 32位 编辑:程序博客网 时间:2024/04/29 02:39
概要编辑
#include <stdarg.h>
type va_arg(va_list ap, type);[1]
2描述编辑
这个宏被展开成一个包含类型为type,值为ap的表达式。参数ap应该首先被宏va_start 或 va_copy初始化,但又必须在被宏va_end调用之前使用。每次调用va_arg都会改变ap值使得后续的参数值能被依次添加。参数type应该是一个类型名,并且用type*能够得到该类型的指针类型。如果type为空,或者type和实际参数不匹配, 那么除了以下两种情况,这个宏的行为是未定义的。
1. 一个是带符号整型,另一个是与之对应的无符号整型,并且值可以被表达成这两种类型的任何一种;
2. 一个是空类型指针,另一个是字符类型指针。
3返回值编辑
第一次调用va_arg返回parmN之后的参数值,后续的调用依次返回剩下的参数值。
4例子编辑
实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdarg.h>
#define MAXARGS 31
/*
* execl is called by
* execl(file, arg1, arg2, ..., (char *)(0));
*/
int
execl(
const
char
*file,
const
char
*
args, ...)
{
va_list
ap;
char
*
array[MAXARGS +1];
int
argno = 0;
va_start
(ap, args);
while
(args != 0 && argno < MAXARGS)
{
array[argno++] =
args;
args =
va_arg
(ap,
const
char
*);
}
array[argno] = (
char
*) 0;
va_end
(ap);
return
execv(file,
array);
}
0 0
- va_arg ()
- va_arg
- va_arg
- va_arg
- va_arg介绍
- va_arg介绍
- 解释va_arg, va_end, va_start
- VA_ARG IN EFI
- va_start(),va_arg(),va_end示例
- va_start、va_arg、va_end用法
- va_start va_arg va_end
- #define va_arg(AP, TYPE)
- 关于va_arg中的type
- VA_LIST VA_START VA_ARG VA_END
- va_start、va_arg、va_end分析
- va_list、va_start、va_arg、va_end
- VA_ARG宏的实现
- va_start(),va_arg(),va_end()
- svn 总结(二)——冲突
- STL源码剖析---deque
- JAVA基础笔记——Collections与Arrays
- 客运综合管理系统项目解析-调度管理-临时加班
- MYSQL常用命令详解
- va_arg
- Oracle 执行计划(Explain Plan) 说明
- poi导入excel2007没问题导入2003报错IncompatibleClassChangeError
- cognos cube分区
- 解决不同版本opencv链接库出错问题
- 【C++总结】关于函数返回对象析构的问题
- 前景提取--PBAS算法
- 全文搜索的数据库及实体实现
- 第12周 项目4 点、圆的关系