Funktion als Parameter an eine andere Funktion übergeben
-
Hallo,
ist es möglich eine Funktion als Parameter an eine andere Funktion zu übergeben? Wenn ja wie rufe ich diese Funktion dann auf? Ich post hier mal einen Code, der warscheinlich nicht funktioniert, aber möglicherweise verdeutlichen kann was ich meine:
void Funktion_1(char *text, int wert){ : : : } void Funktion_2(int value1, int value2, void (*ptrFunktion_1)(char *text, int wert)){ : : : ptrFunktion_1("test 123", 100); : : : }
Also es ist klar, daß ich Funktion_1 direkt aus Funktion_2 aufrufen könnte. Aber Funktion_2 soll in eine statische Bibliothek und je nachdem wie Funktion_2 ausgeführt wird, Konsolenprogramm oder Fensteranwendung, wird Funktion_1 anderst aussehen und erst bei Bedarf in die richtige Form gebracht.
-
Genau so geht das.
Es fehlt nur noch:
Funktion_2(0, 0, &Funktion_1);
-
#include <stdio.h> typedef void * (Func) (void *); void *MyFunc1(void *ptr) { printf("MyFunc1\n"); return NULL; } void *MyFunc2(void *ptr) { printf("MyFunc2\n"); return NULL; } void Test(Func f) { f(NULL); } int main() { Test(&MyFunc1); Test(&MyFunc2); }