[求助]如何实现不定个数形参的传递?

WWWFdisk WWWFdisk 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我希望在printf之前自己先做一些处理,所以要自己写一个printfff把printf包进去。
但是用下面的方法只能传过去第一个参数,后面的都是乱码。
请问如何才能正确的把不确定个数的形参穿递给后一个函数呢?谢谢!


#include <stdio.h>
#include <stdarg.h>

extern "C" void printfff(char* fmt, ...)
{
va_list vl;
va_start(vl,fmt);
int& dummy = *(int *)vl;
printf(fmt,dummy);
va_end(vl);
}

int main(int argc, char* argv[])
{
printfff("%d,%s,%f",123,"Hello",2.3445);
getchar();
return 0;
}

...全文

相关推荐

c语言的形参和实参传递的区别详解

参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。参数传递有3种方式: 值传递 地址传递 引用传递 tips: 被调用函数的形参只有函数被调用时才会临时分配存储单元,一旦调用结束占用的内存便会被释放 值传递和地址传递,传递的都是实参的一个拷贝 C语言中实参和形参之间的数据传递是单向的“值传递”,单向传递,只能由实参传给形参,反之不行 输出格式并没有选择%p而是选择了%d,因为十进制的数看起来更直观 1 值传递 如果只是传递值的话: #include //值传递:传值 void sw

weixin_38723516

老生常谈C++中实参形参的传递问题

函数中参数的传递 这里说的传递当然是指 实参是如何传递给形参的啦 还挺复杂的~~~~~~~~⊙﹏⊙b汗,这里讲述了4种参数传递的情况和注意事项: 1.非引用形参 这是最普通,也是最简单的形参传递了。 参数传递,即是使用实参副本(注意啊,是副本,不是实参本身)来初始化形参; 因此,在函数体内对形参的修改不会影响实参的值。 如果形参是指针类型的,那么函数体内是否可以修改指针所指向的对象的值呢? 如果您产生这样的疑问,表示您很有想法~~~ 答案是~~~需要分情况讨论。 如果函数的形参是非const类型的指针,则函数可以通过指针实现赋值,修改指针所指向对象的值。 所以,如果需要保护指针指向的值,则形参

weixin_38678521

Java语法糖之个数可变的形参的实现

主要介绍了Java语法糖之个数可变的形参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38626943

python 引用传递和值传递详解(实参,形参)

主要介绍了python 引用传递和值传递详解(实参,形参)。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38644780

C什么叫实参 形参 ?怎么用?区别?

C什么叫实参 形参 ?怎么用?区别?

猿声依旧
评论 10
收藏 已收藏
分享
返回顶部
WWWFdisk
VC/MFC 16,550 成员 421,606 内容