2009-03-11 9 views
7

Recientemente, en una entrevista me preguntaron cuál es la firma de printf. Realmente no pude obtener una respuesta correcta. ¿Alguien podría arrojar algo de luz sobre esto?¿Cuál es la firma de printf?

+2

Si está perplejo en una entrevista, especialmente sobre una cuestión de hecho, pregúntele al entrevistador. Si eres amable, y no son un idiota, no puedo imaginar que te rechacen. – Ken

Respuesta

23
int printf (const char * format, ...); 

Probablemente le preguntaron esto para ver si estaba familiarizado con la sintaxis del parámetro opcional "...". Esto le permite pasar una lista indeterminada de variables que completará la cadena de formato.

Por ejemplo, el mismo método se puede utilizar para imprimir cosas como esta:

printf("This is a string: %s", myString); 
printf("This is a string: %s and an int: %d", myString, myInt); 
+0

O podrían haberse preguntado si el entrevistado sabía que printf() devuelve un int. –

+1

Para ser sincero, no sabía que devolvió una int hasta ahora –

+0

Espero que hayan sido después de la sintaxis de la variante. Si querían saber sobre el tipo de devolución, la pregunta era terrible. No quieres trabajar allí. –

6

printf es una función variadic con la firma siguiente:

int printf(const char *format, ...); 

esto significa que tiene uno requiere parámetro de cadena, seguido de 0 o más parámetros (que pueden ser de varios tipos). Finalmente, devuelve un int que representa cuántos caracteres hay en el resultado.

El número y tipo de los parámetros opcionales está determinado por el contenido de la cadena de formato.

Cuestiones relacionadas