Quiz
-
Hi!
Kann mir irgend jemand einen Prototypen von einer Funktion aufschreiben, die
1. als Parameter einen Pointer auf eine Funktion übernimmt und
2. einen Pointer auf einer Funktion ZURÜCKGIBT.Kann man überhaupt einen F-Pointer zurückgeben?
Matthias
-
typedef void (*VOID_FUNC)(void); typedef VOID_FUNC (*FUNC)(VOID_FUNC); void foo() { } VOID_FUNC func(VOID_FUNC f) { return f; }
-
ja, aber geht das ganz auch ohne typedefs?
Parameter gehen ohne, aber der Rückgabetype komischerweise nicht!
Warum nicht? Haben das die C Entwickler vergessen?
-
void (*foo(int bar))(int)
Funktion foo, die einen int-Parameter aufnimmt (bar), und eine void-Funktion, die einen int-Parameter aufnimmt, zurückgibt. Offensichtlich will man das nicht.
-
Wow! Das geht wirklich!
Konstrukte wievoid*(*x(void*))(void(y)(void*));
sind doch echt die coolsten!
-
deswegen verwendet man bei funktionszeiger IMMER typedefs!