Ich bin verwirrt über die Bedeutung von void *function()
.
Ist es ein Zeiger auf eine Funktion oder eine Funktion, die zurückkehrt void*
? Ich habe es immer für Datenstrukturen als rekursive Funktion verwendet, die einen Zeiger zurückgibt, aber als ich einen Code in multithreading ( pthread
) sah, gab es dieselbe Funktionsdeklaration. Jetzt bin ich verwirrt, was der Unterschied zwischen ihnen ist.
void *function()
ist dies eine Funktion, die eine beliebige Anzahl von Argumenten verwendet und einen Wert zurückgibt, der bei Dereferenzierung vom Typ void ist . In C ++ void* function()
ist eine Funktion, die keine Argumente akzeptiert und den Wert pointer-to-void zurückgibt . Sie sollten sich entscheiden, nach welcher Sprache Sie fragen.
void *
. Selbst wenn Sie könnten, was würden Sie mit einem machen void
?
void*function();
ist syntaktisch korrekt. Zum Beispiel haben sie für Python ein anderes Entscheidungsformat gewählt - das Format ist Teil der Syntax. IMHO haben beide Wege ihre Vor- und Nachteile.