我想动态地调用C函数(例如,形成stdlib,数学...)。这意味着我的C程序只知道指向随机函数(例如printf
)及其签名(编码为char数组:char *
,...)的指针。C - 不带函数指针的动态函数调用
我的目标是reflectCall功能是获取一个指向函数(&printf
),签名(在char[]
莫名其妙编码),参数为long[]
(long
是不实际的数据类型,一个长值能也代表一个double值,指针,...)。因此
我反映函数的签名是这样的:
long reflectCall(void *funcPointer, char[] types, long[] args)
功能应该做的功能*funcPointer
的实际调用,最后返回其结果。
因此,我可以不是创建一个指针指针;例如像这样:
int (*functionPtr)(int,int);
任何人都可以给我一个提示如何解决这个问题或建议任何参考实现吗?
目前基本上没有办法在一个独立于平台的方式来做到这一点。 – 2013-03-12 22:25:40
对不起,你不能将可变参数传递给可变参数函数。 C只是不支持必要的反思。 – nneonneo 2013-03-12 22:25:48