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

先頭へ戻る

この章の概要

この章の概要です。


最小限のプログラム

最初の例として、最も小さいC言語プログラムを紹介します。このプログラムは、実行しても特に何も起こらない、意味のないプログラムです。

main(void)
{
    return 0;
}

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

このように、一定の文法に沿って書かれたプログラムをソースコードを呼びます。ソースコードはテキスト形式のファイルに記述します。ソースコードが書き込まれたファイルを、ソースファイルといいます。

以下の点に注意しながら、実際にソースファイルを作成してみてください。VisualStudio でソースファイルを作成する方法は、こちらのページにあります。

ソースコードが書けたら、ビルドを行ってください。ビルドは、プログラムを実行できる状態にする作業です。VisualStudio での操作方法は、こちらのページにあります。ビルドが失敗した場合は、ソースファイルの書き方に問題がないか確認しましょう。例えば、アルファベットや数字、空白の部分が全角になっていませんか?

ビルドが成功したら、実行を行ってください。VisualStudio での操作方法は、こちらのページにあります。

記述の自由度について

C言語では「空白」と「改行」を入れる位置は、ほぼ自由です。"ほぼ" というのは、「return」のような1つの単語の途中には入れられないといった、わずかな例外事項があるためです。

このような自由度があるため、先ほどのプログラムは、次のように書いてもすべて正しく、しかも同じ意味です。

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関数の書き方にはいくつか種類があるのですが、他の書き方については第45章で取り上げることにして、ここでは詳しくは述べないことにします。

他のサイトや参考書などで違った書き方があっても、「main」という名前であれば main関数です(もちろん、「main2」のように、他の文字がくっついていたら、それは main関数ではありません。

return文

returnは、関数内の処理を終了させる命令です。「return 0;」のような記述は、これ全体で return文と呼びます。

今回のサンプルプログラムでは、main関数内の return文が実行されると、main関数内の処理がその時点で終了します。main関数が終了すると、実行しているプログラム自体が終了します

return の後ろに 0 という数値が付いています。これについては関数について説明するとき(第9章)にまとめて説明しますが、とりあえず必要なものであると思っておいてください。今のところは、常にこのように書いておけば問題ありません。

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

セミコロン(;)

セミコロン (;) は、文の終わりを表す記号です。C言語では、改行によって文が終わる訳ではありません。例えば、次のように書くこともできます。

return 0;  return 0;

このように、1行に複数の文を書くことが可能です。実行は、左側にある文が先に処理され、次にその右側の文、さらにあればその右の文へと続いていきます。先程の例の場合だと、左側の return で関数が終了してしまうので、右側の文に行き着くことはありませんが、一応、こういうふうに書くことは可能です。

ただし、基本的には1行1文を守った方が見やすいでしょう。1行に文が複数あると、見落としやすいからです。

また、セミコロンしかない文も許されます。これは、空文と呼ばれ、実行時には何もしません。

main(void)
{
    ;
    return 0;
}

空文を使う必要性はほとんどありませんが、まれに便利なこともあります。

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

C99

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

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

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

int main(void)
{
}


参考リンク



更新履歴

'2018/8/27 VisualStudio でソースファイルを作成する方法を、開発ツールのページでサポートするようにした。
ソースファイル、ソースコード、ビルドなどの用語について補足を入れた。

'2018/8/20 VisualStudio でのビルドと実行の方法を、開発ツールのページでサポートするようにした。
練習問題が不要になったので削除。

'2018/4/2 「VisualC++」という表現を「VisualStudio」に統一。

'2018/1/23 全面的に文章を見直し、修正を行った。

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

≪さらに古い更新履歴を展開する≫



次の章へ (第2章 Hello, Worldプログラム)

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

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー