main関数

広告

前のページでプログラムは上から順に処理が行われていくと記述しました。ではプログラムを実行する時にはプログラムが書かれた1行目から順に開始されるのかというとそうではありません。

これまでにも何度か出てきたサンプルプログラムを見てみます。

#include <stdio.h>

int main(void){
  printf("Hello World!¥n");
  return 0;
}

1行目には「#include <stdio.h>」と書かれていますがプログラムが実行される時にこの行から順に下へ向かって処理が行われていくわけではありません。

C言語で書かれたプログラムは、まず「main関数」から実行されることになっています。main関数は次のような構成となっています。

int main(void){
  /* ... */
}

先ほどの例の場合であれば「main関数」は次の赤字の部分です。

#include <stdio.h>

int main(void){
  printf("Hello World!¥n");
  return 0;
}

「int main(void){」から始まり「}」までが「main関数」です。

関数とは何なのかはここでは詳しくは書きません。C言語では規則として、プログラムが実行される時にまず最初に「int main(void){」と書かれた次の文から実行されると覚えておいて下さい。今回の場合で言えば、真っ先に実行される行は次の赤字の部分です。

#include <stdio.h>

int main(void){
  printf("Hello World!¥n");
  return 0;
}

よってプログラムがコンパイルされて、その後で実行されるとまず「printf("Hello World!¥n");」が実行されます。結果的に画面に「Hello World!」と表示されるわけです。

そして次の行へ移ります。次の行には「return 0;」と書かれています。詳しくは別のページで見ていきますが、これは「main関数を終了する」と言う処理を行います。「main関数」が終了するとプログラムも終了することになっています。その結果、「return 0;」と言う行が実行されるとプログラムが終了するわけです。

このようにプログラムはまずmain関数の最初の行を実行し、その後順番に記述された順に実行されていき、最後にmain関数が終了するとプログラムも終了となります。よって今後プログラムを記述していく時は次のようになります。

#include <stdio.h>

int main(void){
  /*

  この部分にプログラムに行って欲しい処理を順番に書いていく

  */
  return 0;
}

「#include <stdio.h>」はどんな意味があるのかは今後順番に学習していきます。ここではプログラムをどこから実行されてどこで終わるのかだけを覚えておいて下さい。

( Written by Tatsuo Ikura )