2009-03-11 8 views
7

最近、インタビューで、printfの署名が何であるか尋ねられました。 本当に正解を得ることができませんでした。誰かがこれについていくつかの光を当てることができるだろうか?printfの署名とは何ですか?

+2

インタビューで、特に事実の質問で困惑している場合は、インタビュアーにお尋ねください!あなたが礼儀正しくて、彼らが変態でないなら、私は彼らがあなたを拒否しているとは想像できません。 – Ken

答えて

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

おそらく、オプションのパラメータ構文 "..."をよく知っているかどうかを確認するために、この質問をしていました。これにより、書式文字列を埋める変数の不確定なリストを渡すことができます。例えば、同一の方法が、このようなものを印刷するために使用することができる

:printf関数は、次のシグネチャを持つ可変引数関数である

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

また、インタビューを受けた人がprintf()がintを返すかどうか疑問に思っていたかもしれません。 –

+1

正直言って、私はそれがちょうど今まで –

+0

までintを返すのか分からなかった。私は彼らがvariatic構文の後であったことを願っています。返品の種類について知りたければ、その質問はひどいものでした。あなたはそこで働きたくありません。 –

6

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

これはそれが1 を有することを意味します文字列パラメータが必要で、その後に0以上のパラメータ(さまざまな種類があります)が続きます。最後に、結果にいくつの文字があるかを表すintを返します。

オプションのパラメータの数とタイプは、フォーマット文字列の内容によって決まります。

関連する問題