繁体   English   中英

如何在C函数中管理任意参数

[英]How to manage arbitrary arguments in a C function

假设我有一个带有任意参数的函数。 范例:

 execl(char *path, char *arg0,...,char *argn, 0)

函数定义: execl()

因此,无论我发送给它多少适当的参数(> = 3),它都可以工作。 现在说我有一个包含arg0arg1arg2 ,... argn的字符串数组。

如何使用任意数量的字符串调用此函数。 这意味着,如果我有一个字符串大小为3的数组,那么我想调用这样的函数,

execl(char *path, char *arg0,char *arg1, char *arg2, 0)

如果我有一个字符串大小为4的数组,那么我想调用这样的函数

execl(char *path, char *arg0,char *arg1, char *arg2,char *arg4, 0)

有没有自动的方法可以做到这一点。 我不想使用if条件来做类似的事情...(如果我的数组大小为2则调用两个参数函数,如果我的数组大小为3则调用三个参数函数,等等)。 有什么程序吗? 请以简短代码说明。

如果我对您的理解正确,那么您正在问如何使用在单个函数中构建的可变数量的参数调用函数。 简短的答案是你不能。 尽管c具有可变参数功能支持,但它是接收不调用的。 意思是,您可以编写一个接受可变数量参数的函数,但不能将其传递给另一个https://en.wikipedia.org/wiki/Variadic_function

注意:我不确定您的execl()代码是否仅用于演示您的问题,或者您是否正在寻找如何将exec*()函数与可变参数一起使用。 如果是后者,请签出接受字符串数组的execv()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM