(Motivation/Wiederholung:) Funktionen sind Daten, können also auch Argumente und Resultate von Funktionen sein. -- Aber Vorsicht:
int f0 () {
int (*f1 (int x1))(int) {
int f2 (int x2) {
return x1 * x2;
}
return f2;
}
|
int (*g3) (int) = f1 (3); int (*g4) (int) = f1 (4); return g3 (g4 (1)); } |
f1(3), f1(4)
sind wie beschrieben closures
zur Syntax siehe auch Lars Händel: http://www.function-pointer.org/