C/C++で"Hello, World!":ソースコードを読む

沖林正紀
2008-01-25 08:00:00
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

ソースコードの確認

 これから説明するソースコードをリスト1に示す。これは前回作成し、実行したものだ。ここにはいったい何が記されているのだろうか。

リスト1 前回作成したソースコード

#include 

int main() {
  printf("VC++2008でプログラムを実行\n");
  return 0;
}

main関数

 main関数とは、int main() { ... }の部分をいう。処理の単位はすべてこのような関数として表される。関数をソースコードに記述することを、一般に「関数を定義する」という。プログラムの実行時に最初に実行されるのが、このmain関数である。C++の場合はクラスという単位もあるのだが、これはいずれ後述することになるだろう。

 ここでいう関数とは、(...)内に記述された引数(ひきすう)というパラメータをいくつか受け取って、{ ... }内に記述された処理を行い、最後にreturnによって戻り値(もどりち)を返すものをいう。しかし、処理上特に必要がなければ、必ずしも引数や戻り値は存在しなくてもよい。

 たとえばリスト1では、main関数の戻り値が0となっているが、引数は存在しない。もちろん、引数は存在するが戻り値は存在しないという関数を記述することもできる。

returnによる戻り値

 ではなぜmain関数の戻り値が0なのかというと、これはプログラム全体が正常に終了したことを表すしるしになっているからだ。ただし処理系によっては、main関数の戻り値が存在しなくても良いこともある。

 関数の戻り値は、関数名の前に記述することになっている。リスト1の場合は戻り値が必ず0であるため、整数を表すintを記述しておく。整数でないデータを関数の戻り値とする場合は別の記述をするのだが、ここではまだその説明はしない。

 ひとまずはreturnの後に続く0と、関数名の前に記述するintとが対になっているということを知っておいていただきたい。

  • コメント(1件)
#1 Jitta   2008-04-01 22:36:49
> main関数の戻り値が0となっているが、引数は存在しない。
 引数は、存在しないのではなく、「使っていない」ですよね?main は、int argc と char** argv、環境によってはもう一つ char** env が引数として存在していますよ。


> 関数の戻り値は、関数名の前に記述することになっている。
 言語構文を説明する前に関数の説明をするから、こういう変な説明になるんですよね。
 「関数の戻り値」ではなく、「関数の戻り値の型」だというのは重箱の隅として、「関数の宣言をしなければならない」という説明が必要ですよね。
  • 新着記事
  • 特集
  • ブログ