Wenn Sie einige declarator x
in Erklärung T x
haben, dann T x(t1 p1, t2 p2)
bedeutet Funktion mit params p1, p2, die gleiche Art Rückkehr wie die declarator x vor aufweist, wurde .
Parenthesis um den declarator bedeuten Modifikatoren in der Klammer ersten Anwendung.
In Ihrem Fall gibt es keine Modifizierer innerhalb der Klammern. Dies bedeutet, dass sie nicht benötigt werden.
Funktionsprototyp bedeutet Es gibt eine Funktion irgendwo, die diese Signatur hat und ihr Name ist Blah.
Typedef mit dem Prototyp der Funktion bedeutet Geben Sie einen Namen Blah zu einer Funktion Signatur. Dies bedeutet nicht, dass irgendeine Funktion mit dieser Signatur existiert. Dieser Name kann als Typ verwendet werden. Zum Beispiel:
typedef int xxx(int yyy);
xxx *func_ptr; // Declaration of a variable that is a pointer to a function.
xxx *func2(int p1); // Function that returns a pointer to a function.
Sie können [diese Erklärung] (http://c-faq.com/decl/spiral.anderson.html) hilfreich finden. – icktoofay
Sie vermissen ein '*', 'typedef int (* xxx) (int yyy);' definiert einen Funktionszeiger –
@AlterMann Nein, es ist nicht mein Code. Ich denke, es definiert einen Funktionszeiger, aber scheint nicht, ich habe keine Ahnung. – Sayakiss