I want to make something like this in 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
}
But this doesn't work. Is it doable? Where is my mistake?