Syntaxe funkce prohlášení
Funkce může být globální nebo členy třídy nebo struct.Jsou deklarovány pomocí následující posloupnosti:
[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]
Specifikátor deklarace.Viz specifikátory.
V rámci třídy, volitelným friend specifikátor.
Volitelné úložiště tříd:.Globální funkce jsou přípustné skladování specifikátory třídy statické a extern.Pro funkce členů třídy extern není povoleno.
Specifikátor volitelné funkce.Globální funkce pouze přípustné funkční specifikátor je vložené. Pro funkce členů třídy virtuální a vložené jsou povolené a pro konstruktory, explicit.
Specifikátor typu označující typ vrácení (s výhradou změny typu pomocí ukazatele nebo odkaz * nebo &).
Declarator.
Volitelné ukazatele nebo referenční provozovatelů úprava návratový typ
Volitelné Microsoft zvláštní modifikátor určení konvence volání.Viz Microsoft specifické modifikátory.
Název funkce.Pokud je členem třídy nebo struct funkce, může název kvalifikované pomocí operátoru rozlišení oboru.
Seznam argumentů prohlášení, uzavřené v závorkách ().
Volitelné const nebo nestálá kvalifikátoru.V této souvislosti const lze použít pouze pro členy třídy a označuje, že funkce není změnit datové členy třídy.
Pokud návratový typ ukazatel na funkci, syntaxe declarator pravděpodobně složitější, jak je popsáno níže.
- Specifikaci nepovinné výjimky určující, jaké výjimky vyvolá funkci.Viz specifikace výjimku.
Typ identifikátoru deklarované tak mohou následující formát: const nebo funkce volatile (Pokud je zadán), přičemž seznamu zadaný argument vrací typ označený Specifikátor deklarace.
Následující příklad ukazuje dva jednoduché funkce prohlášení:
char *strchr( char *dest, char *src );
static int atoi( const char *ascnum ) const;
Deklarování funkce vrácení ukazatele funkce
Je doporučeno typedef použít k deklaraci funkce, která vrací typ ukazatele funkce-li deklarovat alias pro typ ukazatel funkce.Například
typedef int (*fp)(int);
fp myFunction(char* s); // function returning function pointer
Pokud není provedeno, správná syntaxe deklarace funkce byly vyvozeny z declarator syntaxi pro ukazatel funkce nahrazením identifikátor (fp v tomto příkladu) s názvem a argument seznamu funkce takto:
int (*myFunction(char* s))(int);
Předchozí prohlášení je ekvivalentní použití výše uvedené definice typedef prohlášení.