C函数点隐藏一些变量
当我做科学计算时,我通常会遇到一个场合,我想用不同的方法来解决我的问题。我认为函数指针对我来说是一个很好的工具。然而,这些方法通常有一些自己的参数,如阈值或其他。我可以用一个函数指针来指向它们吗?i、 我可以在C函数指针中隐藏一些参数吗?我知道fortran有替代变量,matlab也可以支持它。 例如:C函数点隐藏一些变量,c,C,当我做科学计算时,我通常会遇到一个场合,我想用不同的方法来解决我的问题。我认为函数指针对我来说是一个很好的工具。然而,这些方法通常有一些自己的参数,如阈值或其他。我可以用一个函数指针来指向它们吗?i、 我可以在C函数指针中隐藏一些参数吗?我知道fortran有替代变量,matlab也可以支持它。 例如: float method_a(float *mod, int N, double pa); float method_b(float *mod, int N, float pb1
float method_a(float *mod, int N, double pa);
float method_b(float *mod, int N, float pb1, char *pb2);
不是真的。C函数指针是一个地址加上一个原型,它描述了参数(在概念机器中)被推到堆栈上的过程。你不能轻易地从一个原型切换到另一个原型
您可以做的是在运行时在C函数指针之上构建自己的动态解析。另一个技巧是始终将void*传递给函数指针,该指针提供上下文。调用函数指针的函数从不检查此void*,只是将其传递。但您可以强制转换到自己的结构,并可能在某个位置打开一个值来调用可能的函数列表中的一个。可能您可以传递一个函数指针,该指针接受结构指针(包含所有可能的参数)作为参数,并在函数实现中解码结构指针。您能确定以后如何调用该函数吗?