【问题标题】:Calling C function by generic pointer通过泛型指针调用 C 函数
【发布时间】:2011-05-29 03:58:53
【问题描述】:

有没有什么方法可以调用函数,只需要知道它在指针中的地址,比如说"void *(*)(void *)" 类型的指针,以及它的参数的数量和类型?

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

【问题讨论】:

    标签: c generics function pointers call


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      大概不会。

      在编写调用之前,您必须知道参数的数量,因此也知道类型。因此,您无法编写一行代码准确地调用一个接受 0 个参数或 1 个参数或 2 个参数的函数。你总是可以提供 2 并且相信事情会起作用 - 但编译器会(有理由)发出警告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-01
        • 1970-01-01
        • 2011-04-19
        相关资源
        最近更新 更多