2009-03-11 16 views
7

Recentemente in un'intervista mi è stato chiesto quale sia la firma di printf. Davvero non ho potuto ottenere una risposta giusta. Qualcuno sarebbe in grado di far luce su questo?Qual è la firma di printf?

+2

Se sei perplesso in un'intervista, soprattutto su una questione di fatto, chiedi all'intervistatore! Se sei educato e non sono un idiota, non posso immaginare che ti rifiutino. – Ken

risposta

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

Erano probabilmente chiedendo questo per vedere se tu fossi familiarità con la sintassi parametro opzionale "...". Ciò consente di passare un elenco indeterminato di variabili che riempirà la stringa di formato.

Ad esempio, lo stesso metodo può essere utilizzato per stampare le cose simili:

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

Oppure si sarebbero chiesti se l'intervistato sapeva che printf() restituisce un int. –

+1

Per essere onesti, non sapevo che restituisse un int fino ad ora –

+0

Spero che fossero dopo la sintassi variabile. Se volevano sapere del tipo di ritorno, la domanda era terribile. Non vuoi lavorare lì. –

6

printf è una funzione variadic con la seguente firma:

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

questo significa che ha una richiesto il parametro stringa, seguito da 0 o più parametri (che possono essere di vari tipi). Infine, restituisce un int che rappresenta quanti caratteri ci sono nel risultato.

Il numero e il tipo dei parametri facoltativi sono determinati dal contenuto della stringa di formato.

Problemi correlati