Liste de déclaration d'arguments
La partie d'une déclaration de fonction correspondant à la liste des déclarations d'arguments :
permet au compilateur de vérifier la cohérence des types parmi les arguments que la fonction requiert et les arguments fournis dans l'appel ;
permet de réaliser des conversions, implicites ou définies par l'utilisateur, du type d'argument fourni vers le type d'argument requis ;
vérifie les initialisations des pointeurs vers les fonctions, ou les assignations à ces derniers ;
vérifie les initialisations des références aux fonctions, ou les assignations à ces références.
Si plusieurs déclarations d'arguments sont répertoriées, elles sont séparées par des virgules.
Les fonctions qui peuvent prendre un nombre variable d'arguments sont spécifiées à l'aide de l'opérateur ellipse (…) à la place des arguments variables. Si l'ellipse est présente, elle doit être le dernier élément de la liste d'arguments. Reportez-vous à la rubrique Listes d'arguments variables.
Chaque déclaration d'arguments comporte les éléments suivants :
Des spécificateurs de déclaration, notamment le spécificateur de type. Plus précisément, cela signifie :
un spécificateur de classe de stockage auto ou register,
const et/ou volatile,
le spécificateur de type.
Un déclarateur, qui peut être abstrait. Un déclarateur non abstrait permet de nommer l'argument ; un déclarateur abstrait spécifie un argument anonyme. Plus précisément, cela signifie :
un caractère * ou & facultatif spécifiant un pointeur ou une référence,
un identificateur facultatif servant à nommer l'argument,
OU
- tout déclarateur complexe spécifiant une combinaison quelconque d'un pointeur, d'une référence, d'un pointeur fonction et d'un tableau pour spécifier complètement le type.
Un initialiseur spécifiant la valeur par défaut de l'argument. Spécifiquement, les initialiseurs d'arguments se composent :
de l'opérateur =,
d'une expression. Il existe plusieurs restrictions sur ces expressions. Consultez
Notez qu'un grand nombre des mots clés spécifiques à Microsoft peuvent figurer dans les spécificateurs de déclaration et dans la déclaration du nom.