Ich weiß, dass der Zweck der typedef ist zu den bestehenden Typen
alternative Namen zuweisen Genau. Funktionen haben Typen und weisen diesem Funktionstyp den Namen Tcl_DriverOutputProc
zu. Der Funktionstyp selbst ist wie eine Funktion mit dem Namen geschrieben fehlt:
int(ClientData, const char *, int, int *)
und wie bei einer Funktionsdeklaration können Sie Namen für die Parameter umfassen, oder lassen Sie sie heraus, wie Sie wählen.
Wie kann dies verwendet werden?
Sie können Zeiger auf Funktionen verwenden, um das Verhalten zur Laufzeit festzulegen. zum Beispiel:
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"
}
In diesem Fall erlaubt es Ihnen, eine Funktion zu schreiben, einige Aspekte von TCL Ausgabe zu handhaben, und TCL sagen, diese Funktion zu nutzen.
Es wird verwendet, um [Funktionszeiger] zu deklarieren (http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work) in TCL_CHANNELTYPE – alexrider
Was halten Sie von das (typedef int (* hallo) (void);)? – MYMNeo