【发布时间】:2010-10-16 22:14:57
【问题描述】:
我正在编写一个可以简化的 C 程序,如果我能做到这样的事情:
int (*func)(int);
char* str= "adder";
func = str;
func(2);
我创建了一个函数指针,一个 char*,并尝试通过该 char* 将函数的名称分配给指针。在本例中,存在 adder(int) 函数。
这真的可能吗?
我知道这样做的标准方法就是 func = adder;,但这并不能解决问题。
非常感谢!
安东尼奥
【问题讨论】:
-
有些东西可以让你接近这一点,但你不能,比如说,用一个字符串来定义要按名称调用的函数。如果您告诉我们您真正想做的事情(核心问题),也许我们可以帮助您找到正确的解决方案。
-
你好马克,我基本上是想根据传递给主函数的参数来调用一个函数。我知道我可以用条件结构进行比较和检查,但我希望我能以更有效的方式来做。谢谢你的回答:)
-
感谢大家这么快的回答。我已经意识到这不是我可以像在我提供的 sn-p 中那样容易完成的事情,我将尝试使用 R.. 下面显示的映射技术。再次感谢您的帮助!! :)
标签: c function-pointers