Wiem celem typedef jest przypisanie nazw alternatywnych do istniejących typów
Dokładnie. Funkcje mają typy, a to przypisuje nazwę Tcl_DriverOutputProc
do tego typu funkcji. Typ sama funkcja jest napisane jak funkcja o nazwie brakującego:
int(ClientData, const char *, int, int *)
i, podobnie jak w przypadku deklaracji funkcji, można dołączyć do nazwy parametrów, albo zostawić je, jak wybrać.
Jak to może być wykorzystane?
można wykorzystywać wskaźniki do funkcji w celu określenia zachowań w czasie wykonywania; na przykład:
typedef void function();
void hello() {printf("Hello\n");}
void goodbye() {printf("Goodbye\n");}
int main() {
function * pf = hello;
pf(); // prints "Hello"
pf = goodbye;
pg(); // prints "Goodbye"
}
W tym przypadku, pozwala napisać funkcję do obsługi jakiś aspekt produkcji TCL i powiedzieć TCL używać tej funkcji.
To służy do deklarowania [wskaźników funkcji] (http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work) w TCL_CHANNELTYPE – alexrider
Co myślisz this (typedef int (* hello) (void);)? – MYMNeo