Weiss jemand, wie ich in c einen pointer auf eine funktion machen kann bzw. ein „funktionsname“ der auf eine funktion zeigt, welchen ich unter laufzeit ändern kann?
Hi Fox !
Soweit ich weiß kann man auf eine Funktion selbst keine Pointer legen. Aber wenn du verschiedene Dinge in einer funktion erledigen möchtest, kannst du einen Parameter übergeben, über den du entscheiden kannst was zu machen ist.
Ciao
Mario
Hallo CFox,
zum Beispiel so:
void (*dowhatiwant)(void); /* Definition des Funktionspointers dowhatiwant */
void dofirst(void)
{
/* Eine der alternativen Funktionen */
}
void dosecond(void)
{
/* Die zweite Funktionen */
}
void dothird(void)
{
/* Die dritte Funktionen */
}
void main(void)
{
int decision;
switch(decision)
{
default:
case 0:
/* Zuweisung an den Pointer */
dowhatiwant = dofirst;
break;
case 1:
/* Zuweisung an den Pointer */
dowhatiwant = dosecond;
break;
case 2:
/* Zuweisung an den Pointer */
dowhatiwant = dothird;
break;
}
/* Aufruf der zugewiesenen Funktion */
dowhatiwant();
}
Tschüß,
Michael
Hi Fox !
Soweit ich weiß kann man auf eine
Funktion selbst keine Pointer legen. Aber
wenn du verschiedene Dinge in einer
funktion erledigen möchtest, kannst du
einen Parameter übergeben, über den du
entscheiden kannst was zu machen ist.
Das ist mir leider etwas zu langsam.
Hi Michael !
Wow , super das wusste ich nicht. Wie man sieht lernt man nie aus … 
Ciao
Mario