2009-03-11 12 views
7

Niedawno w wywiadzie zapytano mnie, jaki jest podpis printf. Naprawdę nie mogłem uzyskać właściwej odpowiedzi. Czy ktoś mógłby rzucić trochę światła na to?Jaki jest podpis printf?

+2

Jeśli jesteś zaskoczony w wywiadzie, szczególnie w kwestii faktycznej, poproś o rozmowę kwalifikacyjną! Jeśli jesteś grzeczny i nie jesteś palantem, nie wyobrażam sobie, żeby ci odmawiali. – Ken

Odpowiedz

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

Prawdopodobnie pytali o to, czy znasz opcjonalną składnię parametru "...". Pozwala to przekazać nieokreśloną listę zmiennych, które wypełnią ciąg formatu.

Na przykład, ta sama metoda może być stosowana do drukowania rzeczy tak:

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

Lub mogli się zastanawiać, czy rozmówca wiedział, printf() zwraca int. –

+1

Szczerze mówiąc, nie wiedziałem, że zwróciło int do chwili obecnej –

+0

Mam nadzieję, że były one po wariacyjnej składni. Jeśli chcieli wiedzieć o rodzaju zwrotu, pytanie było straszne. Nie chcesz tam pracować. –

6

printf jest o zmiennej liczbie argumentów funkcji z następującym podpisem:

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

oznacza to, że ma jeden wymagany parametr łańcuchowy, a następnie 0 lub więcej parametrów (które mogą być różnych typów). Wreszcie zwraca wartość int, która reprezentuje liczbę znaków w wyniku.

Liczba i typ opcjonalnych parametrów określona jest przez zawartość ciągu formatującego.