Partager via


Listes d'arguments de variable

Les déclarations de fonction dans lesquelles le dernier membre de argument-declaration-list est l'ellipse (...) peuvent prendre une quantité variable d'arguments. Dans ces cas-là, C++ fournit une vérification du type uniquement pour les arguments déclarés explicitement. Vous pouvez utiliser des listes d'arguments variables lorsque vous devez rendre une fonction si générale que même le nombre et les types des arguments peuvent varier. La famille de fonctions printf est un exemple de fonctions qui utilisent des listes d'arguments variables.

Pour accéder aux arguments après ceux qui sont déclarés, utilisez les macros contenues dans le fichier Include standard STDARG.H comme décrit dans Fonctions avec listes d'arguments variables.

Section spécifique à Microsoft

Microsoft C++ autorise la spécification de l'ellipse comme argument s'il s'agit du dernier argument et qu'elle est précédée d'une virgule. Par conséquent, la déclaration int Func( int i, ... ); est conforme, contrairement à int Func( int i ... );.

FIN de la section spécifique à Microsoft

La déclaration d'une fonction qui accepte une quantité variable d'arguments nécessite au moins un argument d'espace réservé, même si elle n'est pas utilisée. Si cet argument d'espace réservé n'est pas fourni, il est impossible d'accéder aux arguments restants.

Lorsque des arguments de type char sont passés comme arguments variables, ils sont convertis en type int. De même, lorsque des arguments de type float sont passés comme arguments variables, ils sont convertis en type double. Les arguments d'autres types sont soumis aux promotions intégrales et à virgule flottante classiques. Pour plus d'informations, consultez Promotions intégrales.

Voir aussi

Référence

Déclarations de fonctions