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

问题描述 投票:0回答:1

假设我有以下功能:

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;
}

有关这方面的更多详细信息,我想通过 Telnet 套接字调用这些函数。我在程序中编写了一个函数来建立连接。现在,我想通过在 Telnet 输入中输入来调用程序中的其他函数。

假设我的 Telnet 功能提供了一个提示,例如 ->,我想做这样的事情:

-> add(4,5) or -> add 4 5 /* actually i don't care how to write it */
Ans: 9
-> read_log_file()
Ans: reading File....
c function telnet
1个回答
0
投票

C 标准不提供调用具有程序执行期间确定的参数数量和参数类型的函数的功能,仅在程序翻译期间提供。 (某些 C 实现可能提供此类功能。)通常,需要调用多种类型函数的程序是通过编写代码来实现的,其中(至少)对要支持的每种类型的函数进行一次调用,并使用

switch
在这些调用之间进行分派或
if
陈述。

© www.soinside.com 2019 - 2024. All rights reserved.