sobre resueltos respuestas programacion programa preguntas lenguaje funciones examenes ejemplos dev cuestionario basicas c++ c

resueltos - programa de preguntas y respuestas en c++



Pregunta sobre la definición de una función(tres puntos en los parámetros...) (4)

Me encontré con una definición de función:

char* abc(char *f, ...) { }

¿Qué significan los tres puntos?


Esto es lo que se llama una función de varargs o una función de argumento variable en C.

Uno que probablemente reconozca es printf.


Los puntos suspensivos significan que hay una cantidad variable de argumentos a continuación. El lugar donde los habrá utilizado (quizás sin darse cuenta) son las funciones de la familia printf .

Le permiten crear funciones de ese estilo donde los parámetros no se conocen de antemano, y puede usar las funciones de va_start ( va_start , va_arg y va_end ) para obtener los argumentos específicos.

Este enlace here tiene un buen tratado sobre el uso de printf de las listas de argumentos variables.


Se les llama elipsis y significan que la función puede tomar un número indeterminado de parámetros. Tu función probablemente se puede llamar así:

abc( "foo", 0 ); abc( "foo", "bar", 0 );

Debe haber una forma de indicar el final de la lista. Esto se puede hacer usando el primer parámetro, como ión a printf (cadena de formato 0, o por un terminador especial, cero en el ejemplo anterior).

Las funciones con un número variable de parámetros se consideran incorrectas en C ++, ya que no se puede realizar ninguna comprobación de tipo o conversiones definidas por el usuario en los parámetros.