[C/C++] main関数の戻り値を理解しよう!
妹「void main(){ }」
兄「ん。void mainか……」
妹「うん……。ポチポチポチ」
兄「……」
妹「……あのさ。この一番最初のmain関数からプログラムが開始されるのは解るんだけど、このvoidって何?」
兄「えっ……なんでそんな事しらないんだよ。本に書いてあるだろ?」
妹「書いてないよ、ほら……」
ここではそういうものだとしてvoid main(){}と書きましょう。
おまじないみたいなものだと思ってint main()と書いてください。
ルールなのでint main()にしましょう
兄「……えっ、ほんとだ!?そういえば俺も最初はそれおまじないだと思ってたな……多分、一番最初の章だし、とりあえず一つ一つ書いたり説明するよりも。読んでりゃ解るだろうってスタンスだと思う。でも、この後に型の説明と関数の戻り値の説明とって、そういうのがあるだろ……?」
妹「あるけど、結局この戻り値って何なの?」
兄「値が戻ってくるだろ?下図のこういう感じだよ。」
妹「……関数は、int k=kansuu();とすると、kに値が戻ってくるけど。これ?」
兄「そう、それ」
妹「mainはどこに戻ってくるの……?」
兄「コマンドプロンプトに戻るだろ?」
妹「コマンドプロンプト!?」
兄「ほら、コマンドプロンプトの%errorLevel%に入ってる。これで条件分岐をしたりするんだよ」
妹「本当だ……なんで本にあんまり書いてないんだろ」
兄「OSによっても戻り値の格納先が違ってて、その解説でこのOSならここ。このOSならここって書いていくと、プログラムの説明をしろや!と怒る人がいるんじゃないかと。
それで関数の方の戻り値を受ける所で、『おまじないと言ってたmain関数もこんな感じだよ!』みたいな一文があったりする。
後は理解してたらできるだろう?と」
妹「……私、ずっとプログラムを動かすためのおまじないだと思ってたよ」
兄「どこのまじない師だよ……」
ディスカッション
コメント一覧
まだ、コメントがありません