C基础(C语言中可变参数用法)

C基础(C语言中可变参数用法),第1张

C基础(C语言中可变参数用法),第2张

C语言中常用的变量参数是printf();函数的原型如下:
intprintf(const char * format,...);
写一个简单的变量参数:
# include
void va _ fun(int I,...);
int main(void)
{
va _ fun(100);
va_fun(200,100);
va_fun(100,200,300);
}
void va_fun(int i,...)
{
va _ list arg _ ptr;
int j = 0;
va_start(arg_ptr,I);
j = va_arg(arg_ptr,int);
va _ end(arg _ ptr);
printf("%d %d\n ",I,j);
}
这样就实现了一个简单的可变参数。实际上,可变参数是由宏实现的,它在参数堆栈中寻找参数的位置,然后返回。
定义如下:
typedef char * va _ list;
# define _ int sizeof(n)((sizeof(n)+sizeof(int)-1)& ~(sizeof(int)-1))
# define va _ start(AP,V)(AP =(va _ list)& v+ _ int sizeof(V))
# define va _ arg(AP,t)(*(t *)((AP+= _ int sizeof(t))-_ int sizeof(t)))
建议变量参数应
在printf中,以下参数的个数是根据format中参数的个数来确定的。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C基础(C语言中可变参数用法)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情