Eigene Funktion, die eine Funktion als Parameter erwartet?
-
Guten Abend,
kann mir jemand bitte erklären, wie ich eine Funktion schreiben kann, die eine andere Funktion(, die auch selber Parameter hat) als Parameter akzeptiert? Gibt es dazu vielleicht ein Tutorial? Mir würde auch ein Beispiel, mit dessen Hilfe ich lernen kann (also vielleicht mit ein, zwei Kommentaren) ausreichen...
Danke

-
Es gibt Zeiger auf Funktionen. Man bräuchte nicht extra ein Tutorial dafür. Hauptsache, Du hast die Deklarationssyntax verstanden:
int sum(int,int); // deklariert sum als int(int,int) int mul(int,int); // deklariert mul als int(int,int) typedef int i2i(int,int); // i2i = int(int,int) oder "int x int -> int" int machdat(i2i * fun, int a, int b) { return fun(a,b); } int main() { return machdat(&mul,1,0); }Die Funktionsaufrufsyntax "()" ist auch direkt auf Funktionszeiger anwendbar. Das & ist hier nicht notwendig, weil es einen automatischen "function to pointer decay" gibt.
Ohne typedef kann man das natürlich auch machen:
int machdat(int (*fun)(int,int), int a, int b) { return fun(a,b); }Gruß,
SP
-
Edit: Zu spät...
-
Aaah, danke!

-
Vielleicht kann dir auch diese Seite helfen:
http://www.newty.de/fpt/index.html
-
Auch dir danke für den nützlichen Link!!!
