2009-03-11 3 views
7

Недавно в интервью мне спросили, что такое подпись printf. Я действительно не мог получить правильный ответ. Кто-нибудь сможет пролить свет на это?Что такое подпись printf?

+2

Если вы в тупике в интервью, особенно по вопросу факта, попросите интервьюера! Если вы вежливы, и они не рывком, я не могу представить, что они отказываются от вас. – Ken

ответ

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

Возможно, они задали это, чтобы узнать, были ли вы знакомы с необязательным синтаксисом параметра «...». Это позволяет вам передавать неопределенный список переменных, которые будут заполнять строку формата.

Например, тот же метод может быть использован для печати вещи, как это:

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

Или они, возможно, задавались вопросом, знал ли собеседник, что printf() возвращает int. –

+1

Честно говоря, я не знал, что это вернуло int только сейчас –

+0

Надеюсь, они были после вариационного синтаксиса. Если бы они хотели узнать о типе возвращения, вопрос был ужасным. Вы не хотите работать там. –

6

Printf является VARIADIC функции со следующей подписью:

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

это означает, что у него есть один требуется параметр строки, за которым следуют 0 или более параметров (которые могут быть разных типов). Наконец, он возвращает int, который представляет количество символов в результате.

Количество и тип дополнительных параметров определяется содержимым строки формата.

Смежные вопросы