通过通用指针调用C函数

时间:2011-05-29 03:58:54

标签: c generics function pointers call

是否有任何方法可以调用函数,只需知道它在指针中的地址,让我们说一个"void *(*)(void *)"类型的指针,以及它的参数的数量和类型?

该函数可以包含任意数量的参数!

2 个答案:

答案 0 :(得分:5)

不,不是以任何便携式或标准方式。

但是,有一种标准方法可以在函数之间传递可变数量的参数。看看vsprintf。基本上,您需要一个接受va_list

的函数版本

答案 1 :(得分:2)

粗略地说,没有。

在编写呼叫之前,您必须知道参数的数量,因此也需要知道类型。因此,您不能编写一行代码来准确调用带有0个参数或1个参数或2个参数的函数。你总是可以提供2并且信任的东西会起作用 - 但是编译器会(合理地)给出警告。