不定参函数
原文地址:VC如何写参数个数不定的函数(即类似printf的函数)
作者:丢丢
下面演示了如何写类似printf的函数
#include
<
stdio.h
>
#include
<
stdarg.h
>
//
要包含这个头文件
void variable(
int
i, ...)
{
int
j
=
0
;
va_list arg_ptr;
//
第1步,定义这个指向参数列表的变量
va_start(arg_ptr, i);
//
第2步,把上面这个变量初始化.即让它指向参数列表
while
( j
!=
-
1
)
{
//
第3步,获取arg_ptr指向的当前参数.这个参数的类型由va_arg的第2个参数指定
j
=
va_arg(arg_ptr,
int
);
printf(
"
%d
"
,j );
}
va_end(arg_ptr);
//
第4步,做一些清理工作
}
main()
{
variable(
3
,
3
,
4
,
5
,
6
,
-
1
);
}
#include
void
{
}
main()
{
}
作为va_list,va_start的练习,可以学习一下使用_vsnprintf函数
#include
<
stdio.h
>
#include
<
stdarg.h
>
void formatoutput(
char
*
format, ...)
{
char
s[
10
];
va_list arg_ptr;
va_start(arg_ptr, format);
_vsnprintf(s,
sizeof
(s)
-
1
, format, arg_ptr);
printf(
"
%s
"
, s);
}
void main()
{
formatoutput(
"
%s%s
"
,
"
d
"
,
"
g
"
);
}
#include
void
{
}
void
{
}