我想动态地调用C函数(例如,形成stdlib,math ...).这意味着我的C程序只知道指向随机函数(例如printf
)及其签名(编码为char数组:char *
,...)的指针.
我的目标是一个reflectCall函数,它获取一个指向函数(&printf
)的签名,一个签名(以某种方式编码在a中char[]
),参数作为一个long[]
(long
不是实际的数据类型,一个long值也可以表示一个double值,指针, ...).
因此,我的反射函数的签名如下所示:
long reflectCall(void *funcPointer, char[] types, long[] args)
Run Code Online (Sandbox Code Playgroud)
该函数应该对函数进行实际调用,*funcPointer
最后返回其结果.
结果,我无法创建指针指针; 比如这个:
int (*functionPtr)(int,int);
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个提示如何解决这个问题或建议任何参考实现?