Hallo ???!
Ich wollte mal wissen, wozu dient ein Funktionszeiger?
int *wozuistdas()
Bei dem Variablenzeiger ist es klar, man kann damit
performantere Programme schreiben. Aber für den
Funktionszeiger? Es wäre toll, wenn jemand mir ein Beispiel
geben kann.
Eine Verwendung in C ist z.B. qsort() (Quick-Sort) aus der Standart-Bibliothek. Hier wird ein Funktions-Zeiger für die Vergleichsfunktion verwendet.
Ich benötige so etwas sehr oft im Zusammenhang mit verschiedenen Übertragungs-Protokollen. Bei der Initialisierung wird zuerst das Gerät identifiziert und danach ein Übertragungs-Protokoll vereinbahrt. Eine Möglichkeit besteht nun darin eine Variable zu setzen und an jedem Punkt wo etwas protokoll-spezifisch ist mit einem „switch“ die entsprechende Funktion aufzurufen. Dies hat einerseits den Nachteil, dass zur Laufzeit jedesmal CPU-Zeit für den „switch“ verbraucht wird und andererseits müssen, wenn ein neues Protokoll hinzukommt, alle „switch“ erweitert werden.
Mit Funktions-Zeigern, muss nur die Protokoll-Erkennung erweitert und die neuen Protokoll-Funktionen geschrieben werden (die Protokoll-Erkennung setzt dann einfach nur noch die Zeiger). Das restliche Programm muss nicht angepasst werden.
MfG Peter(TOO)