[C++]遍历可变参数 (va_list)
来源:农民伯伯 责任编辑:栏目编辑 发表时间:2013-07-01 06:21 点击:次
前言
在C++中使用可变参数可没C#中那么方便,使用起来也很麻烦,想尽办法搜了很多资料仍然无果,但是确有一些心得。
文章
1. http://www.programmer-club.com.tw/ShowSameTitleN/vc/13915.html
2. va_list、va_start、va_arg、va_end的原理与使用
正文
一. 遍历可变参数
1.1 传入的时候指定参数个数
void arg_cnt(int cnt, ...)
{
int value=0;
int i=0;
int arg_cnt=cnt;
va_list arg_ptr;
va_start(arg_ptr, cnt);
for(i = 0; i < cnt; i++)
{
value = va_arg(arg_ptr,int);
printf("value%d=%d\n", i+1, value);
}
{
int value=0;
int i=0;
int arg_cnt=cnt;
va_list arg_ptr;
va_start(arg_ptr, cnt);
for(i = 0; i < cnt; i++)
{
value = va_arg(arg_ptr,int);
printf("value%d=%d\n", i+1, value);
}
va_end(arg_ptr);
}
调用方法:“arg_cnt(4,1,2,3,4);”,第一个参数为传入参数个数。
1.2 传入的时候指定特殊的字符以标示为结
int demo( char msg, ... )
{
va_list argp;
int argno = 0;
char para;
va_start( argp, msg );
while (1
{
va_list argp;
int argno = 0;
char para;
va_start( argp, msg );
while (1
相关新闻>>
- 发表评论
-
- 最新评论 更多>>