c - 是否可以使用仅在运行时知道参数数量和类型的函数指针来调用函数

标签 c function-pointers

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

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

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

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

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

有什么想法吗?

最佳答案

我建议您使用两个参数:

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

第二个参数类型:(void*) -> 包含第一个参数所指示的多个参数的列表。

就像 main 中的 argc 和 argv 一样。

致以诚挚的问候。

关于c - 是否可以使用仅在运行时知道参数数量和类型的函数指针来调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090626/

相关文章:

c++ - C 和 C++ 编码标准

c - 即使我添加 %s,格式也不是字符串文字

c++ - 当函数必须访问其他成员时,如何将 lambda 函数分配给结构成员?

ios - 如何在 Swift 中调用带有函数指针参数的函数?

c++ - 状态机、子类和函数指针

c - 如何将字符串插入到c中的数组中

c - 分配和释放内存,将 100 个数字写入数组,qsort 在 C 中对它们进行排序

c - 带有 XC8 v1.43 的 PIC16F1717,用于键盘按键的变量

c++ - 如何在 C++17 中将抛出函数指针静态转换为 noexcept?

c++ - 使用函数指针调用函数模板