如何动态给可变长参数的函数传参如何动态给可变长参数的函数传参150

2021-03-05 10:16:48 字数 2740 阅读 1929

1楼:匿名用户

使用含有可变形参的函数可以帮到你。

一个例子:

#include

#include

void func(int count, ...) //可变形参的函数的定义

main()

事实上,如果你的满足条件的单元都是一种类型,不需要这么复杂,把他们都放到一个vector中,或者数组中作为参数传递就可以完成功能了。

上述可变形参适用于形参类型不同的时候来使用。希望可以帮到你。有问题欢迎追问。

2楼:伊·梵

传参数的时候,需要几个就要传几个,这个要看api具体的使用手册最简单的可变长参数的函数printf,楼主应该知道怎么传参数吧printf("%d%d", 1, 2);

printf("%s%c%d", "123", 'c', 234);

3楼:匿名用户

首先,满足条件的单元,取出来之后,存在**? 个人认为存储在指针里比较合适,或者就放一数组里面。要不就搞一链表存着。

其次,是打印的问题。 感觉第一个问题解决后,就不存在可变参了, right?就是传一指针进去,或者数组地址进去。

4楼:匿名用户

读不懂您的意思,能再说明白一些吗?

你的参数意思是指命令行输入吗?

参数类型有什么要求?

把所有满足条件的单元作为参数,传入函数,传给哪个函数?

最好给个例子描述

5楼:

这种可变长参数可以一个参数一个参数的传,也可以直接传一个数组进去。在数组里面,你有多少个参数都可以的,这样就可以做到动态了。

例如:可变长参数的方法为 public void static hello(string... args)

string strs = new string[10];

hello(strs);

或者hello("aaa", "bbb", "ccc");

hello("aaa", "bbb");

hello("aaa");

怎么将可变参数的函数的参数传递给另一个可变参数的函数

6楼:育知同创教育

无办法直接做到这一点,不过可以采用其他方法实现,例如:首先,定义被调用函数的参数为va_list类型,同时在调用函数中将可变长参数列表转换为va_list,这样就可以进行变长参数的传递了。看如下所示:

void subfunc (char *fmt, va_list argp)

void mainfunc (char *fmt, ...)这样就ok了!

怎样实现一个可变参数函数, 它把参数再传给另一个可变参数函数?

7楼:水竹丫小童鞋

无办法直接做到这一点,不过可以采用其他方法实现,例如:首先,定义被调用函数的参数为va_list类型,同时在调用函数中将可变长参数列表转换为va_list,这样就可以进行变长参数的传递了。看如下所示:

void subfunc (char *fmt, va_list argp)

void mainfunc (char *fmt, ...)这样就ok了!

8楼:千锋教育

通常来说, 做不到。理想情况下, 应该提供另一个版本的函数, 这个函数接受 va list 指针类型的参数。类似于 vfprintf(),如果所有的参数必须完整的传给另一个函数, 或者不能重写另一个函数为一个接受 va list 指针类型参数的函数, 这并没有一个可移植的解决方法。

也许可以通过求助于机器的汇编语言来实现。

9楼:临界

有很多中方法实现啊 直接调用就行了 可变参数的底层是一个数组 你可以用集合或数组来存储这些参数的值啊

如何实现vba中函数的可变参数传递

10楼:匿名用户

'使用paramarray关键字可以使函数接收数目可变的参数functioncalcsum(byvalfirstargasinteger,paramarrayotherargs())

dimiasinteger

calcsum=firstarg

fori=0toubound(otherargs)calcsum=calcsum+otherargs(i)next

endfunction

'如果用如下**调用该函数:

subexample1()

dimreturnvalue

'局部变量赋予以下值:firstarg=4,'otherargs(0)=3,otherargs(1)=2,otherargs(2)=1,等等。

returnvalue=calcsum(4,3,2,1)msgboxreturnvalue

endsub

如何在一个可变参数函数中调用另一个可变参数函数

11楼:匿名用户

只能把va_list解析出来再用,这个函数的功能应该和vsprintf功能一样

下面是个简单的例子

c/c++ code

#include

#include

void foo(char *fmt,...)int main(void)

这里va_start,va_arg都是预编译,va_list其实是个字符型指针

如何判别可变参数函数的参数类型,怎么将可变参数的函数的参数传递给另一个可变参数的函数

1楼 用narginnargin number of function arguments,即函数输入参数个数。只要你的函数重载逻辑没有出错,那么就可以通过查看nargin的数值来实现你说的设置缺省值等功能。 看下nargin的帮助就知道了。 2楼 新生儿 等闲识得东风面 万紫千红总是春 怎么将可变...

如何将数组中的值依次传入到另方法的可变参数中

1楼 14吧5啊 public void meth2 int num1 public void meth1 for int i 0 i望采纳!!! 怎样实现一个可变参数函数, 它把参数再传给另一个可变参数函数? 2楼 水竹丫小童鞋 无办法直接做到这一点,不过可以采用其他方法实现,例如 首先,定义被调...

小波变换中哪个参数反映频率信息是如何反映的

1楼 匿名用户 小波变换是一种加窗傅里叶变换,它的特点是在某处时窗与频窗 傅里叶变换定义的频域 大小的乘积是一个定值。如果你说的是广义频域,那么你应该知道 小波变换的核函数有两个变量,一个时移参数,一个尺度参数。 实际上小波域固定时移参数,以尺度参数为变量,得到的谱与这一时间信号处的频谱大致的走向 ...