是否有任何方法可以调用函数,只需知道它在指针中的地址,让我们说一个"void *(*)(void *)"
类型的指针,以及它的参数的数量和类型?
该函数可以包含任意数量的参数!
答案 0 :(得分:5)
不,不是以任何便携式或标准方式。
但是,有一种标准方法可以在函数之间传递可变数量的参数。看看vsprintf
。基本上,您需要一个接受va_list
。
答案 1 :(得分:2)
粗略地说,没有。
在编写呼叫之前,您必须知道参数的数量,因此也需要知道类型。因此,您不能编写一行代码来准确调用带有0个参数或1个参数或2个参数的函数。你总是可以提供2并且信任的东西会起作用 - 但是编译器会(合理地)给出警告。