va_start,va_arg,va_end的用法
来源:互联网 发布:淘宝网冬季新款女鞋 编辑:程序博客网 时间:2024/05/16 06:59
来源:http://topic.csdn.net/t/20030418/20/1680144.html
头文件<stdarg.h> 按照 ANSI C 标准中的规范说明, 以 <stdarg.h> 为界面的库包含着几个函数的宏, 它们提供了一种可移植的方法来控制可变参数表。注意: 不是任何 C 编译器都支持头文件 <stdarg.h>, 仅仅那些遵照 ANSI C 标准的才支持这个文件。头文件 <stdarg.h> 说明了一个类型并定义了三个宏, 用来处理被调函数参数个数和类型未知的参数表。
例子:
#include<stdarg.h>
#include<stdio.h>
void errmsg(int code,...)
{
va_list argptr;
char *fmt;
va_start(argptr,code);//在访问任何未知参数之前argptr必须用宏va_start来初始化一次
if(code &FILENAME)
fprintf(stderr,"%s:",argptr,char *));
if(code &LINENUMBER)
fprintf(stderr,"%s:",argptr,int));
if(code&WARNING)
fputs("warning:",stderr);
fmt=va_arg(argptr,char*);
fprintf(stderr,fmt,va_arg(argptr,char *));
va_end(argptr);//参数处理完毕后,并且在退出errmsg()之前, 个宏被调用一次
}
stdarg.h - handle variable argument list
#include <stdarg.h>
#define MAXARGS 31
int execl (const char *file, const char *args, ...)
{
va_list ap;
char *array[MAXARGS];
int argno = 0;
va_start(ap, args);
while (args != 0) {
array[argno++] = args;
args = va_arg(ap, const char *);
}
va_end(ap);
return execv(file, array);
}
来源:http://msdn.microsoft.com/zh-cn/library/kb57fad8.aspx
- va_start,va_arg,va_end的用法
- va_start、va_arg、va_end用法
- va_start,va_end,va_arg用法
- 可变参数va_start, va_arg, va_end的用法
- 可变参数va_start, va_arg, va_end的用法
- 可变参数va_start,va_arg,va_end的用法
- 可变参数va_start,va_arg,va_end的用法
- 可变参数va_start,va_arg,va_end的用法
- Va_list Va_start va_arg Va_end 的用法
- va_list,va_start, va_arg,va_end用法
- va_list、va_start、va_arg、va_end用法
- va_start va_end va_arg的用处
- C++ 中 va_list va_start va_arg va_end 的用法!
- 变长参数va_list, va_start, va_arg, va_end, va_copy的用法
- C语言可变参数va_start、va_arg、va_end的用法
- VA_LIST介绍以及VA_START、VA_ARG、VA_END的用法
- va_start va_arg va_end 的使用和原理
- 宏:va_list、va_start、va_arg、va_end的使用
- Table.java
- 利用RFT+VBS实现对表格控件的数据录入
- 在MOSS里让用户修改自己的域密码
- Microsoft Access初级者入门讲座——(5)什么叫关系型数据库
- 表单判断语句
- va_start,va_arg,va_end的用法
- ws2_32.dll
- 部分关于需求分析和软件构架的书籍
- 常见的子系统分类
- 开发前期的需求分析的心得
- 开放的IM,转来的.没地方,暂时放下
- 软件设计得理想的一些特征
- 在ARM9(S3C2440)上实现ZigBee协议--基于CC2420芯片
- 关于耦合