Partager via


Syntaxe de déclaration de fonction

Les fonctions peuvent être globales ou les membres d'une classe ou d'une structure.Ils sont déclarés à l'aide de la séquence suivante :

[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. le spécificateur de déclaration.Consultez spécificateurs.

    • dans une classe, un spécificateur facultatif d' friend .

    • un spécificateur facultatif de classe de stockage.Pour les fonctions globales, des spécificateurs autorisés de classe de stockage sont statique et extern.Pour les fonctions membres de classe, ne sont pas autorisés extern .

    • un spécificateur facultatif de fonction.Pour les fonctions globales, un seul spécificateur autorisé de fonction est inline. Pour les fonctions membres de classe, il permet virtuel et inline et, pour les constructeurs, explicite.

    • Un spécificateur de type indiquant le type de retour (soumis à la modification apportée à un pointeur ou un type référence par l'utilisation * ou &).

  2. le déclarateur.

    • pointeur facultatif ou opérateurs de référence modifiant le type de retour

    • Un modificateur spécifique facultatif Microsoft spécifiant la convention d'appel.Consulter les modificateurs spécifiques Microsoft.

    • Nom de la fonction.Si la fonction est un membre d'une classe ou un struct, il peut être qualifié par l'opérateur de résolution de portée.

    • La liste entre parenthèses **()**placé de déclaration d'argument.

    • Un qualificateur const ou volatile facultatif.Dans ce contexte, const peut être utilisé que pour des membres de la classe, et est utilisé pour indiquer que la fonction ne modifie pas les données membres de la classe.

Si le type de retour est un pointeur fonction, la syntaxe de déclarateur peut être plus complexe, comme expliqué ci-dessous.

  1. Indiquer facultatif de spécification d'exception les exceptions la fonction lève.Consultez Spécification d'exception.

Le type de l'identificateur donc déclaré peut être construit comme suit : (si spécifié) fonction const ou volatiles, qui prend une liste d'arguments spécifiée, en retournant le type indiqué par le spécificateur de déclaration.

L'exemple suivant montre deux déclarations de fonctions simples :

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

Déclarer des fonctions qui retournent des pointeurs vers des fonctions

Il est recommandé que typedef soit utilisé pour déclarer un alias pour le type de pointeur fonction si vous déclarez une fonction qui retourne un type de pointeur fonction.Exemple :

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

Si cela n'est pas effectué, la syntaxe appropriée pour la déclaration de la fonction peut être déduite de la syntaxe des déclarateurs par le pointeur fonction en remplaçant l'identificateur (fp dans l'exemple ci-dessus) avec le nom et la liste d'arguments de fonctions, comme suit :

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

La déclaration précédente est équivalente à la déclaration à l'aide de le typedef ci-dessus.

Voir aussi

Référence

Déclarations de fonction