C言語編 第1章 最小限のC言語プログラム

先頭へ戻る

このエントリーをはてなブックマークに追加

この章の概要

この章の概要です。

最小限のプログラム

とりあえず最初の例として、最も小さいC言語プログラムを紹介します。

後で取り上げていますが、C99 の場合は、少し事情が変わってきます。

main(void)
{
	return 0;
}

このソースコードをコンパイルして実行してみて下さい。 「void」や「return」の部分の色が違うことは気にする必要はありません。 また、警告が出るコンパイラもあるかも知れませんが、ここでは気にしないで進めてください。
第0章にも書いたように、コンパイルや実行の方法まで解説する予定はありません。 「参考リンク」に挙げたサイトなどを参考にして下さい)

このプログラムは「何の問題も無いが、何も起こらない」意味のないプログラムです。 それでもわざわざ例に挙げたのは、C言語の文法をいくつか知ることができるからです。

まず、C言語では「空白」と「改行」の位置が 自由だということを知っておいて下さい。また、空白をスペースで空けても、タブ文字で空けても同じことです。 ただし、空白を全角文字にしてはいけません

なお、C言語では、アルファベットの小文字と大文字は区別されます。 そのため「return」を「RETURN」と書いたり、「Return」と書いたりすると、それは「return」とは別物という扱いになってしまいます。

先ほどのプログラムは、次のどのパターンに書き換えてもすべて有効であり、しかも同じ意味になります。

main(void)
{
	return 0;
}
main(void){ return 0; }
main(void){
	return 0;
}

どの書き方も文法上は正しいのですが、実際には冒頭で紹介した書き方が多く使われます。 何を基準にすればいいかは、人によって言い分があるのですが、 ソースコードは、後から他人が見る可能性があるということは忘れないようにしましょう。 仕事でプログラムを書く場合は特にそうです。 また、1つのプログラムの中では、1度決めた書き方で統一して下さい。その方が綺麗で見やすくなります。 本サイトのC言語編では、冒頭の形式で統一します。

main関数

冒頭のソースコードにある、「main(void)」という部分は、main関数と呼ばれています。 関数については第9章で詳しく説明しますが、とりあえず 「複数の処理をまとめたもの」と考えて下さい。 { から } の間に、 処理を記述します。

C言語のプログラムでは、main関数だけは必ず作らなくてはならないことになっています。 なぜなら、C言語のプログラムは main関数から処理が開始されるからです。 スタート地点が分からないと処理できないので、必須ということです。

なお、main関数の処理が開始された後は、上から下に向かって処理が進行していきます

main関数の書き方にはいくつか種類があるのですが、ここでは詳しくは述べません。 他のサイトや参考書などで違った書き方があっても「main」という名前であれば main関数です ( 「main」の前後に文字があったら別です。例えば「mainfunc」などは、main関数ではありません)。 他の形式の main関数については、第45章で登場します。

return文

return文は、関数の処理を終了させる命令です。 今回の例では、main関数内で return文が使われているので、return文が実行されると、main関数が終了します。 main関数が終了すると、そのプログラム自体が終了します

return の後ろに 0 という数値が付いていますが、これについては関数について説明するとき(第9章) にまとめて説明しますが、とりあえず必要なものであると思っておいて下さい。

このように、「return」というのは、C言語に用意された1つの機能です。サンプルのソースコード内で、 色を変えているのは、そのような標準機能を表すキーワードだということを示したものです。 VisualC++ などでソースコードを表示した場合にも、同様に色が変化するでしょう。

セミコロン(;)

セミコロン (;) は、文の終わりを表す記号です。 この記号が来ると、その文が終了したものとみなされます。次のように書くこともできます。

文1;  文2;

このように1行に複数の文を書くことができます。 ただし、できるだけ1行1文を守った方が見やすいと思います。

また、セミコロンしかない文も許されます。 この場合、空文と呼ばれ、何も行わないことになります。 空文を使う必要性はほとんどありませんが、まれに便利なこともあります。

最小限のプログラム (C99)

C99 (最小限のプログラム)

C99 では、main関数の末尾まで実行されると、そこに「return 0;」があるかのように動作します。 そのため、常に 0 を返すので構わないのならば、return文を省略することが可能です。

一方で、関数の戻り値の型を省略することができなくなっているので(第9章参照)、 「int」を追加する必要があります。

結果として、C99 における最小限のプログラムは、以下のようになります。

int main(void)
{
}


練習問題

問題@ 最小のC言語プログラムを、何も例を見ないで書いて下さい。改行位置などは自由ですが、自分のスタイルを決めて書いてみて下さい。

※この問題に解答はありません。基本的にコンパイルが成功すれば問題はありません。ただし、あまりに見にくい書き方は避けましょう。

参考リンク

更新履歴

'2015/7/4 「最小限のプログラム (C99)」を追加。

'2014/1/14 VisualC++ 2008 の対応終了。

'2014/1/10 clang 3.0 に対応。

'2010/12/11 「参考リンク」に、「太田研究室>Visual C++ 2010 Express プログラミング入門」を追加。  誤読しそうなので、コーディングスタイルの紹介順序を入れ替えた。

'2009/3/1 「この章の概要」を追加。

'2009/1/26 空文に関する記述を追加。リンク先を修正。

'2008/8/29 新規作成。



前の章へ

次の章へ

C言語編のトップページへ

Programming Place Plus のトップページへ