【发布时间】:2021-08-26 10:19:01
【问题描述】:
在 C 中,从 What is guaranteed about the size of a function pointer? 开始,似乎可以使用泛型泛型函数指针。
假设您将函数签名与指针一起存储(以某种方式......例如:每个参数的大小),是否可以动态调用此函数? (签名仅在运行时已知)。 所有函数的返回类型都是void,只有参数列表发生变化
我想知道转换为可变参数函数是否可以解决问题?
(奖励)问题是针对 C 的,但在 C++ 中,是否可以使用类似的技术,并将其应用于实例方法?
(我并不期望一定是符合标准的解决方案,但仍然是大多数编译器足够支持的东西)
【问题讨论】:
-
不要在一个问题中同时询问 C 和 C++
-
“将函数签名与指针一起存储”您不能(就标准而言)。 “以某种方式...例如:每个参数的大小” 这还不够。没有什么是足够的。您不能将签名存储为数据,然后解释该数据以进行实际调用。
-
对于不符合标准的解决方案,请尝试libffi。
标签: c++ c function-pointers