c语言 函数 引用变量,在C中转发对变量函数的调用

本文介绍了如何在C/C++中利用va_list实现varargs风格函数,如m_printf,通过va_start, vprintf和va_end来处理可变参数。同时,强调了va_list伙伴函数在库开发中的实用价值。
摘要由CSDN通过智能技术生成

不是直接的,但是,在标准库中,变量函数以成对的形式出现在标准库中是很常见的(在标准库中,这几乎是普遍的情况)。varargs风格替代功能。G.printf/vprintf

那个V.。函数采用va_list参数,其实现通常使用编译器特定的“宏魔术”,但您可以保证调用v.像这样的变量函数的样式函数可以工作:#include int m_printf(char *fmt, ...){

int ret;

/* Declare a va_list type variable */

va_list myargs;

/* Initialise the va_list variable with the ... after fmt */

va_start(myargs, fmt);

/* Forward the '...' to vprintf */

ret = vprintf(fmt, myargs);

/* Clean up the va_list */

va_end(myargs);

return ret;}

这应该会给你想要的效果。

如果考虑编写各种库函数,还应该考虑将va_List样式的伙伴作为库的一部分。正如您可以从您的问题中看到的,它可以证明对您的用户是有用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值