使用另一个函数的值在C中创建一个函数指针

时间:2015-03-24 15:49:12

标签: function pointers

我正在寻找一种在C(++)中创建函数指针的方法,该函数使用一个参数将其添加到创建函数的范围内,如python中的这个例子:

def add(x, y):
    return x+y

def create_function(y):
  def addY(x):
    return add(x, y)
  return addY

add5 = create_function(5)
print add5(2)
# 7

y可以作为类实例或指针给出,只要我可以在addY中访问它。

1 个答案:

答案 0 :(得分:0)

我没有用C解决问题,但C ++提供了std::bind。 连同typedef函数的参数(它的CGAL,它对模板做了很多)的可能性,我可以使用绑定函数作为参数。

这是blogentry,我找到了解决方案:http://www.alecjacobson.com/weblog/?p=4034

我首先尝试使用std :: bind然后得到了相同的错误,这会在搜索错误消息时导致这个帖子。

如果您有一个建议,它如何与普通C函数一起使用,我仍然会对可能的事情感兴趣。