【发布时间】:2016-09-29 15:34:36
【问题描述】:
我想在 C 中做这样的事情:
typedef int (*func)(int);
func make_adder(int a) {
int add(int x) {
return a + x;
}
return &add;
}
int main() {
func add_42 = make_adder(42);
// add_42(10) == 52
}
但这不起作用。可行吗?我的错在哪里?
【问题讨论】:
-
C不支持闭包,这是不可行的,如果您需要使用()运算符调用它,则不支持。 -
嵌套函数不是标准的 C.
-
什么是模拟它的最佳方式(如果有的话)?
-
函子是什么形式的?
-
@naomik 我去了这个:stackoverflow.com/a/356993/1350864
标签: c function functional-programming functor