是否可以使用函数指针调用函数,该函数指针具有仅在运行时知道的参数的数量和类型

时间:2012-10-26 16:15:51

标签: c function-pointers

背景:我正在创建一个库,允许进程使用IPC从另一个进程调用另一个函数。

每个流程都需要注册其功能:

void register_function(char* function_name, 
                       void(*func)(), 
                       int nb_parameters, 
                       const int parameters_type[])

我的问题是当我需要通过IPC请求实际调用该函数时,我无法调用该函数,因为参数的数量和类型仅在运行时才知道。

我正在考虑使用动态创建的结构来调用函数,但我不确定我应该使用的参数的顺序,或者即使它是个好主意。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我建议你使用两个参数:

第一个参数类型:(int)。含义 - >参数数量

第二个参数类型:(void *) - >如第一个参数所示的那么多参数的列表。

就像主要的argc和argv一样。

最好的问候。