函数变参(Variable arguments)

本文介绍99C标准中如何实现函数变参功能。主要涉及类型va_list及四个宏函数:va_start、va_end、va_arg和va_copy。通过这些工具可以在编译时不确定参数类型和数量的情况下实现函数调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//首先说明问题:

//      所谓函数变参指的是在编译时无法确定该函数在调用时参数列表中参数的类型和数量,比如大名鼎鼎的“print”系列;

 

 

一、99C标中函数变参的实现:

      总体上说就是一个类型外加四个宏函数,这都在stdarg.h里有定义。

      (1)、类型va_list:使用时首先用va_list定义一个变量用于保存某个变参函数某次变参使用相    关的信息。

      (2)、va_start宏:

                原型:void va_start(va_list ap,parmN);

            作用:初始化ap,就是将ap与本次变参函数调用关联起来,参数“parmN”很重要,参数parmN是函数定义中的参数列表中可确定的参数最右边那个(正好位于“,...”之前的那一个)的标识符,系统通过它确定参数列表中变参的开始。

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值