関数処理関数編 その2
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「関数処理関数編 その2」を公開しました。
関数処理の第二回でございます。…多分「関数処理」&「関数」編は結構な長丁場になりますので、
少しばっかり、腰を据えておつきあい頂ければ、と思います。
というわけで早速…今回はまず「可変長引数」についてでございます。
おいちゃん的に、可変長引数と言えばやはりprintf系列の関数群を想起するのですが…まずは極々簡単に、
printfの書式のおさらいをしておきましょう。
「可変長」の辺りのニュアンスをくみ取って頂きたいので、恣意的に2~3パターンほど。
printf(“test1\n”);
printf(“test2 %d\n”, 10);
printf(“test3 %d %s\n”, 10, ‘hoge’);
printf(“test4 %d %s %f\n”, 10, ‘hoge’, 1.23);
printfなどは、このように「第一引数の文脈によって、引数の数がころっころと変わる」関数になります。
ちなみに引数が「余る」場合は放置、「足りない」場合は”Warning: printf(): Too few arguments in “という、
警句レベルのメッセージが飛び交います辺りは、以下でご確認ください。
printf(“test5 \n”, 10, ‘hoge’, 1.23); // 「余る」サンプル
printf(“test6 %d %s %f\n”); // 「足りない」サンプル
さて。
printfと同じように引数の数が動的に変わる関数を、じゃぁ「どうしても自作で作りたい」なんて時にどうしましょう?
というのが、今回の「可変長引数」になります。
# ちなみに「引数が三つあるうちの1つは、指定しなくてもしてもよくて、指定がなけりゃデフォルトを適用するよ」ってのは、もうちょっと別の書式がありますってのは後日やります。
この続きは以下をご覧ください
http://resocia.jp/column/1343/
ソーシャルもやってます!