第1章 C言語の構造とルール
C言語の構造とルールを順番にご紹します。
プログラミングをする際に必ず守らないといけないルールや、お作法を理解しておく必要があります。
プログラムはmain関数から開始される
main関数とは何なのでしょうか?
疑問だらけだと思いますが、まずは「main関数」と呼ばれる媒体が存在しているのだ。と理解してください。
以下はmain関数になります。プログラム処理は、{ } で囲まれた中に記載されるのですが、
以下はプログラム処理が何も存在していません。
int main(void)
{
}
関数とは、プログラムで書かれた処理をひと纏まりにしたものです。
main関数とは、「main」という名前の関数ということです。
「書籍の1.1.2 関数の作り方」にもありますが、関数の構造(=書き方)は以下の通りです。
<書式:関数の構造>
型名 関数名(引数) { 処理 }
main関数を例にしてみましょう。
1.戻り値の型名・・・int
2.関数名・・・main
3.引数・・・void
4.処理・・・何も書かれていない

戻り値の型名であるintですが、プログラム言語にはデータを入れる器に種類があります。
intは、整数値を格納する器を意味します。
つまり、1,2,3,4,5・・・という数値が入れられるということです。
型名に書かれた器に応じたデータが、main関数の処理が完了した時点で処理を呼び出した媒体に返されます。
関数名のmainはそのままですが、関数の名前です。
C言語では、プロジェクトに必ず1つだけmain関数を用意するのがルールになっています。
逆に、複数main関数を用意するのはNGになります。
ちなみに、mainという名前は予約語と呼ばれ、C言語の中でプログラム言語側が使用することを前提として扱われる文字列になり、設計する皆さんがmainという単語を、プログラム内において関数名以外で使用することはできません。
引数のvoidですが、main関数を処理する際、処理前に渡したいデータがあれば設定することができるのですが、そのデータのことを引数と言います。
voidというのは、引数(=渡したいデータ)は何もない。ということを意味する単語になります。
引数が何もない場合に ( ) カッコの中に何も書かないのではなくvoidと書いていただき、何もデータが存在しません。ということを明示しておきます。
ちなみに、型名のintをvoidと書いた場合は、main関数の処理が完了した時点で呼び出した媒体に返されるデータは何もない。ということになります。
最後に{ } のカッコの中に処理させたいプログラムを書いていきます。
上記はあえて何も処理を書いていません。
ここまで、チンプンカンプンの状態でも問題ありません。
とにかく、そうなんだなぁ。と受け入れていただければ、後述の解説で徐々に意味が理解できるようになってきます。
関数の要点まとめ
mainは関数の一つであり、必ずプロジェクトに一つは用意する必要があります。
関数の要点を改めて以下にまとめたいと思います。
関数の書き方
上述にも出てきましたが、関数を記載する際に以下の4点が必ず記載するべき内容になります。
1.戻り値の型名
2.関数名
3.引数
4.処理

関数名のルール
関数名を付けるルールが決まっています。
書籍のP41にもありますが、
①半角アルファベット、半角数字、半角記号 _ (アンダーバー)が使える。
②先頭の1文字目に数字は使用できない
③C言語が内部で使用する予約語は使えない。
<①の例>
test、Test、test_1
<②の例>
1test、22Test、35_test_1
これらはエラーになります。
<③の例>
main、int、char、float
他にもありますが、これらは別の用途で言語が使用するため、
予め決められた単語になり使用できません。
何もしないmain関数
書籍のP41~42に書かれているmain関数のサンプルは、何も処理がない関数になっています。
上記で書いてきたmain関数は、④の{ }内に何も書いてありませんが、
処理の結果である①で、intの型に入れられた数値を返す指示となっているので、
④に何も書かないのはルール違反になります。
その為、書籍になぞらえて、以下の様にします。
int main(void)
{
return 0;
}
return 0; と書きましたが、①でvoidと書かれていなければ、
戻り値の型名に準じた処理結果が設定される必要があります。
処理結果を返す場合、return という単語に続いて、戻されるデータを記載するのがルールです。
ここでは、intが戻り値の型名でしたので、数値が処理結果として返される必要があり、
ここでは 0 が返されるようにプログラムされています。
例えば、ここでは例題として 0 が戻されていますが、
数値あればよいので、以下の如く1や2でも良いのですが、
main関数については、0 = 正常処理完了 0以外 = 異常処理完了という意味を持ちますので、
0以外の数値である場合、文法としては問題ないですが処理結果は異常終了を意味することになります。
return 1;
return 2;
最後に、文末にある ; はプログラムの文末に付記するルールになっていますので、
処理の文末に必ず付けるようにします。
ブラウザで動作するC言語で試してみよう
以下はブラウザ上でC言語が動作するサイトになります。
アクセスして、下記のコードを書いてみましょう。
https://paiza.io/ja/projects/new?language=c
int main(void){
return 0;
}
左下の「実行」をクリックすると中央赤丸部が「Success」になればOKです。

あえて、以下の様なプログラムに変えてみてください。
同じ様に実行ボタンを押すとエラーになります。
int main(void){
return 1;
}

ここまでが、書籍の「1.1 何もしないプログラム」P43までの内容になります。