新人Y子のプログラミングのお部屋9

前回は、ソースコードの最初に記載する「#include」ついて見てみました。
さて、今回は「int main()」を見てみましょう。

[speech_bubble type=”std” subtype=”R1″ icon=”sanoyu-normal.png” name=”新人Y子”]3行目の「int main()」は何をしているのでしょう?
[/speech_bubble]
[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]これは「main」という関数の始まりを意味します。
関数はこの始まり行の次の4行目のカギカッコ「{」から、8行目の「}」までが1つのブロックになります。
[/speech_bubble]

[speech_bubble type=”std” subtype=”R1″ icon=”sanoyu-normal.png” name=”新人Y子”]3行目の「int main()」単独ではなく、3~8行目が1つの関数になるという事ですね。
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]はい。
C言語では、「処理」は必ず関数の中に書く決まりになっています。
このサンプルでも例外なく、”Hello, World!”を出力する処理が、main関数の中に書かれていることが分かると思います。
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]ちなみに、今回のサンプルは、main関数だけで完結していますが、通常は関数を分けて開発します。

[/speech_bubble]

[speech_bubble type=”std” subtype=”R1″ icon=”sanoyu-normal.png” name=”新人Y子”]なるほど。
関数の分け方はどうすればいいですか?
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]分け方に、決まりはありません。
通常は、機能ごと分けたり、同じ処理を共通化する目的で分けることが多いです。
関数の分け方を考えることも、「設計」になると思いますので、頑張ってください。
[/speech_bubble]

[speech_bubble type=”std” subtype=”R1″ icon=”sanoyu-normal.png” name=”新人Y子”]自分で考えるわけですね。難しそう。
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]関数は「階層」であることを理解すると良いです。
関数は上下関係があって、上位の関数が、下位の関数を呼び出し、下位の関数が終われば上位関数の呼び出した直後の命令に戻る動きをします。
中でも、main関数は、階層の最上位の関数となり、一般に「エントリーポイント」と呼ばれ、プログラムの最初に呼び出されますが、プログラム終了まで生き延びる寿命の一番長い関数になります。
[/speech_bubble]

[speech_bubble type=”std” subtype=”R1″ icon=”sanoyu-normal.png” name=”新人Y子”]なるほど~
main関数は、エントリーポイントすなわち入口ですが、出口でもあるのですね。
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”itokuma-normal.png” name=”しげちゃん先生”]それでは、宿題です。
次のsub1, sub2, mainの3つの関数で構成するプログラムがあります。
このプログラムを実行した結果(出力される文字)を答えてください。
[/speech_bubble]

[speech_bubble type=”std” subtype=”L1″ icon=”sanoyu-bikkuri.png” name=”新人Y子”]難しそう・・・!?
[/speech_bubble]

[speech_bubble type=”std” subtype=”R1″ icon=”techtrageman-normal.png” name=”テクトレージマン”]次回に続く[/speech_bubble]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次