Compartir a través de


Listas de argumentos variables

Las declaraciones de función en las que el último miembro de argument-declaration-list son los puntos suspensivos (...) pueden tomar un número variable de argumentos. En estos casos, C++ proporciona comprobación de tipos solo para los argumentos declarados explícitamente. Puede utilizar listas de argumentos variables cuando necesite crear una función tan general que incluso el número y los tipos de argumentos puedan variar. La familia de funciones printf es un ejemplo de funciones que utilizan listas de argumentos variables.

Para tener acceso a los argumentos declarados en esas funciones, use las macros incluidas en el archivo de inclusión estándar STDARG.H, tal como se describe en Funciones con listas de argumentos variables.

Específicos de Microsoft

Microsoft C++ permite especificar los puntos suspensivos como argumento si son el último argumento y van precedidos por una coma. Por consiguiente, la declaración int Func( int i, ... ); es válida, pero int Func( int i ... ); no lo es.

FIN de Específicos de Microsoft

La declaración de una función que toma un número variable de argumentos requiere al menos un argumento de marcador de posición, incluso si no se utiliza. Si no se proporciona este argumento de marcador de posición, no existe ninguna forma de obtener acceso a los argumentos restantes.

Cuando los argumentos de tipo char se pasan como argumentos variables, se convierten al tipo int. De igual forma, cuando los argumentos de tipo float se pasan como argumentos variables, se convierten al tipo double. Los argumentos de otros tipos están sujetos a las promociones habituales de entero y de punto flotante. Vea Promociones de entero para obtener más información.

Vea también

Referencia

Declaraciones de función