在C中的另一个函数中调用具有任意数量或类型参数的任何函数

e5nqia27  于 2023-11-16  发布在  其他
关注(0)|答案(1)|浏览(72)

假设我有以下函数:

void func1 (void arg1, int arg2);
int func2 (void arg1, int arg2, char* arg3);
char func3 (char* arg1, int arg2, FIlE* arg3);
.
.

字符串
我的意思是,我可以有函数,返回任何类型,并采取任何数量的任何类型的参数。
现在,我如何创建一个函数,以另一个函数作为参数并返回其结果?类似于这样:

void* func_caller(func* func(args))
{
   return func;
}


关于这方面的更多细节,我想通过JavaScript套接字调用这些函数。我已经在程序中编写了一个函数来建立连接。现在,我想通过在JavaScript输入中输入它们来调用程序中的其他函数。
让我们假设我的函数提供了一个提示符,例如,->,我想这样做:

-> add(4,5) or -> add 4 5 /* actually i don't care how to write it */
Ans: 9
-> read_log_file()
Ans: reading File....

bakd9h0s

bakd9h0s1#

C标准不提供用于调用具有在程序执行期间确定的参数数量和参数类型的函数的功能,仅在程序翻译期间提供。(某些C实现可能提供这样的功能。)一般来说,需要调用多种类型函数的程序是通过编写(至少)对要支持的每种类型的函数进行一次调用,并使用switchif语句在这些调用之间进行调度。

相关问题