@waynee sagte in Zeiger auf Funktionen in C mit Parameterliste:
Ich glaube das ist des Rätsels Lösung!!!
Das glaube ich nicht.
Ich dachte Anfangs, dass das notwendig wäre auch gleichzeitig einen Zeiger vom Typ int zu deklarieren, weil ich davon ausging, dass der Funktionszeiger "int (*f)(...)" auch zugleich eine Art "Prototyp-Kopie" zu der zu verweisenden Funktion darstellen soll.
Du hast f vom Typ Zeiger auf Funktion definiert (und nicht deklariert), ein Prototyp d.h. Funktionsprototyp ist immer nur eine Deklaration (d.h. eine Vereinbarung zwischen dir und dem Compiler ohne jegliche Codeproduktion, eine Deklaration resultiert niemals in ein Objekt, hat also keinen Typ, keine Adresse, ...)
int main()
{
int a = 5;
int (*f)();
f = zfunc;
printf("Rufe f, den pointer auf zfunc, auf:\n");
f(&a);
printf("returnwert\n%d\nAdresse von a\n%p\nAdresse f\n%p\nWert von f==Adresse von zfunc\n%p\nAdresse von zfunc\n%p",
f(&a), (void*)&a, (void*)&f, (void*)f, (void*)zfunc);
return 0;
}
https://ideone.com/NliQNw