ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
プログラミング
その他

プログラムの開始と終了

前回は、最も簡単なプログラムということで、プログラムが開始して、すぐに終了してしまう簡単な例を取り上げました。前回は、コンパイル〜実行の方法の解説を中心に行ったので、プログラムの内容そのものについては一切触れませんでしたが、今回は、最も簡単なプログラムを例に、プログラムの基礎の基礎にあたる部分を詳しく見ていくことにしましょう。

int main()
{
  return 0;
}

上のプログラムは、前回取り上げた「最も簡単なプログラム」です。このプログラムには main という「関数」が一つだけ定義されています。「関数」というのは、プログラムがコンピュータに対してどんな命令をどんな順序で出すかを教えるためのものです。「関数」は、英語で function ですが、function には、数学でいうところの「関数」のほかに、「機能」の意味があります。プログラミング言語の「関数」は、むしろ「機能」の意味に近いかもしれません。ただ、書き方は数学の関数に似せているようです。

数学の関数は、例えば次のような書き方をしますね。

f(x) = 2x + 1

これは、x という値を f という名前の関数に与えると、2x + 1 という計算を行うという意味ですが、C++の関数も同様に、何らかの値を受け取って、それを使って何らかの計算を行った結果を返すようになっています。受け取る値は1個とは限らず、2個以上あってもかまいませんし、まったくなくてもかまいませんが、返す値は1個か、あるいは値を返さないかのどちらかです。

これを上の main 関数に当てはめてみましょう。main 関数の最初の部分(1行目)を見ると、int main() となっていますね。ここで、main という関数名の後の () は、関数に渡す値がどのようなものかを書くところです。今回の場合、() の中には何も書かれていませんから、main にはひとつも値を渡さないことを意味しています。次に、main という関数名の前の int ですが、これは英語の integer の略で、整数を意味しています。つまり、main 関数は整数値を返すことを表しています。

先ほど、main というのは関数名だと書きました。この関数名は、どんな名前をつけてもよいわけではありません。もっと具体的にいうと、関数名に使える文字が決まっています。それは、英語のアルファベットの大文字・小文字(A〜Z, a〜z)と、数字(0〜9)と、下線( _ )です。そして、数字で始まる名前をつけることもできません。また、下線で始まる名前をつけることはできますが、下線で始まる名前というのは、コンパイラやライブラリが使っている可能性があるので、自分で作る関数名には使うべきではありません。

次に、2行目以降の解説に移ります。2行目〜4行目にかけて、波括弧 {} でくくってありますね。これは、波括弧でくくられた範囲が、main という関数の内容であることを表しています。関数の内容を定義するときは、どこからどこまでがその関数の内容かをはっきりさせるために、必ず波括弧でくくる必要があります。そして、その波括弧でくくられた中に、その関数によって、コンピュータに与えるための命令を書き並べます。

「最も簡単なプログラム」では、波括弧でくくられた中には、return 0; という1行だけが書かれていますね。これは、その関数を終了して、0 という値を返すことを意味しています。つまり、main 関数に入ると、すぐに return 0; が実行されて、main 関数は終了してしまうわけです。他に特別なことは何も行いません。

ところで、プログラムの中では、好きなだけ関数を書くことができるのですが、この main 関数だけは特別な意味を持っています。それは、C++のプログラムは必ず main 関数から始まるということです。そして、main 関数が return で終了すると、プログラムも終了します。ですから、「最も簡単なプログラム」は、プログラムの開始で、まず main 関数が実行され、main 関数は特に何もしないですぐに終了しますから、プログラムもやはり終了してしまうわけです。

プログラムは必ず main 関数から始まりますから、プログラムのどこにも main 関数が見つからないと、コンパイラはエラーメッセージを表示して、プログラムの翻訳を放棄してしまいます。プログラムの実行には、必ず main が必要だということを覚えておいてください。

プリンタ出力用画面
前のページ
最も簡単なプログラム
コンテンツのトップ 次のページ
Hello, World!


 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa