2011-05-29 103 views
3

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

该函数可以有任意数量的参数!

回答

5

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

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

2

粗略地说,没有。

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