Funktionsdeklarations-Syntax

Funktionen sind möglicherweise globalen oder Member einer Klasse oder Struktur.Sie können mithilfe der folgenden Reihenfolge deklariert:

[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] declarator [cv-qualifer] 
[exception-spec]
[friend] [storage-class-specifier] [function-specifier]
[[cv-qualifer] type-specifier] [*|&] [ms-modifer] identifier 
( argument-list ) [cv-qualifer] [exception-spec]
  1. Der Parameterbezeichner Deklaration.Weitere Informationen finden Sie unter Bezeichner.

    • Innerhalb einer Klasse einen optionalen Spezifizierer friend .

    • Ein optionaler Speicherklassen Parameterbezeichner.Für globale Funktionen sind zulässige Speicherklassen Parameterbezeichner static und extern.Ein Klassenmember extern Funktionen ist nicht zulässig.

    • Ein optionaler Funktion Parameterbezeichner.Für globale Funktionen ist der einzige zulässige Funktion **inline.**Parameterbezeichner Ein Klassenmember virtuell und Funktionen werden, und inline für Konstruktoren, Explicitzulässig.

    • Ein Typspezifizierer, der den Rückgabetyp angibt (je nach Änderung in einen Zeiger oder einen Verweistyp oder &unter Verwendung von *).

  2. Der Deklarator.

    • Optionaler Zeiger oder Verweis bediener, die den Rückgabetyp ändern

    • Ein bestimmter optionaler Modifizierer Microsoft, der die Aufrufkonvention angibt.Weitere Informationen finden Sie unter Microsoft-Besondere-Modifizierer.

    • Der Name der Funktion.Wenn die Funktion ein Member einer Klasse oder Struktur ist, wird der Name mit des Bereichsauflösungsoperators qualifiziert werden.

    • Die Liste beiliegendes deklarations Argument in Klammern ().

    • Ein optionales const oder ein flüchtiger Qualifizierer.In diesem Kontext wird const möglicherweise nur für Klassenmember und wird verwendet, um anzugeben, dass die Funktion nicht als Datenmember der Klasse ändert.

Wenn der Rückgabetyp über einen Funktionszeiger ist, ist die Syntax des Deklarators komplexer wie im Folgenden erläutert.

  1. Optionales Ausnahme spezifikations angeben, welche Ausnahmen die Funktion ausgelöst wird.Weitere Informationen finden Sie unter Exception Specifications.

Der Typ des Bezeichners Daher deklariert wird, kann wie folgt: const oder flüchtige (sofern angegeben) - Funktion die angegebene Argumentliste nehmend und geben den Typ aus dem angegebenen Formatbezeichner Deklarationen zurück.

Im folgenden Beispiel werden zwei einfache Funktionsdeklarationen an:

char *strchr( char *dest, char *src );
static int atoi( const char *ascnum ) const;

Die Funktionen, die Zeiger auf Funktionen deklarieren zurückgeben

Es wird empfohlen, dass typedef verwendet wird, um einen Alias für den Typ der Funktionszeiger zu deklarieren, wenn eine Funktion deklariert, die einen Funktionszeiger den Typ zurückgibt.Beispiel:

typedef int (*fp)(int);
fp myFunction(char* s); // function returning function pointer

Wenn dies nicht möglich ist, wird die korrekte Syntax für die Funktionsdeklaration Deklaratoren der Syntax für den Funktionszeiger abgeleitet werden, indem Sie den Bezeichner (fp im obigen Beispiel) dem Funktionsnamen und der angegebenen Argumentliste ersetzt:

int (*myFunction(char* s))(int);

Die vorangehende Deklaration ist in die Deklaration mit Typedefs nach oben.

Siehe auch

Referenz

Funktionsdeklarationen