C言語は世の中で使われているほぼ全ての言語の祖先であると同時に、OS開発や組み込み開発等で広く使われています。本記事では、C言語について色々と紹介します。まずはC言語プログラムの全体像を見てみましょう!
プログラムの全体像
まずは、C言語プログラムの全体像を見てみます。
下のプログラムは、画面に「hello, world」よいう文字を出すだけの単純なものです。
「int main(void)〜」のような記述で、人間が読んで意味がわかるプログラムをソースコード(source code)といい、記述したソースコードをファイルとしてコンピュータに保存したものをソースファイル(source file)といいます。C言語のソースファイルは、「〜.c」という拡張子を指定します。
#include <studio.h>
int main(void)
{
printf("hello, world¥n");
return 0;
}
実行結果
hello, world
C言語のソースコードには、{}(波括弧)で囲まれた部分が多く登場します。この部分をブロック(block)と呼び、この中にコンピュータに対する指示や命令を記述していきます。ブロックの外側に記述する内容は、どのようなプログラムを作成する場合でもほぼ同じパターンを用います。
・ ファイルの拡張子を必ず「〜.c」とする。
・ 漢字やひらがなを使うと、トラブルの原因になる可能性がある。
・ 半角の英数字を使うことが望ましい。
プログラムの書き方
① どのようなプログラムを作りたいか考える。
② プログラムの名前を決める
③ 「code.c」などの名前でソースファイルを保存する。
④ ソースコードの外側部分を記述する。
⑤ ソースコードの内側部分に処理を記述する。
① 正確に記述する
② 上から下へではなく、外から内へ
③ 読みやすいコードを記述する
ソースコードには、様々な文字・数字・記号が登場します。間違った文字を入力するとプログラムは正常に動きません。特に、下記の3つには注意しましょう。
1. 英数字は半角で入力し、大文字・小文字の違いも意識する。
2. 英数字や記号を正確に入力する
▶︎ 0/O(英字のオー)と0(数字のゼロ)
▶︎ l(英字のエル)と1(数字のイチ)
▶︎ ;(セミコロン)と:(コロン)
▶︎ .(ピリオド)と,(カンマ)
3. ()、{}、[]などの括弧や、’と”の引用符の種類を間違えない。
特に正確な記述が求められるのが、プログラムの1行目から3行目にかけてです。
#include<stdio.h>、int main(void)を一字一句間違えないようにしましょう。
1行目のstdioは、「STandaD Input and Output(標準入出力)」というIT専門用語の略です。文字を入力(input)したり画面に出力(output)したりすることを意味します。書く際に”studio”と間違えやすいやすいので注意しましょう。
ファイル名が「〜.exe」となっているのが実行可能ファイルです。
macOSやLinuxでは「〜.out」や何もついていない場合があります。
プログラミングを始めてしばらくは、ブロックの{}の対応が正しくないというエラーに悩まされがちです。特に、ブロック内にさらにブロックを書き込むことが増えていくと、}(閉じ括弧)の書き忘れによるエラーが多くの入門者を悩ませます。
エラーを防ぐ方法として、
1. ブロックを開いたらすぐに閉じる
2. 内容を書く
という癖をつけることが近道です。
文法的には誤りがなくても、人間が読みにくい煩雑なコードや複雑で理解に時間がかかるコードは、修正や改良が難しくなります。誰が見ても分かりやすい記述をするように心がけましょう。
インテンド
C言語では、基本的にソースコードのどこに改行や空白を入れ流のかは作り手の自由とされています。極端な例ですが、下記のソースコードでも、コンパイルは成功します。
#include <studio.h>
int main(void){printf("hello, world¥n");return 0;}
しかし、これでは一目でプログラムの構造を把握するのが難しくなります。適切な場所に改行や空白を入れるようにしましょう。特に、ブロックの開始と終了では正確に字下げを行い、括弧の対応とブロック構造の見通しを良くすることが重要です。字下げのことをインテンド(indent)といい、キーボードの「Tabキー」で行うのが一般的です。
誤ったインテンドは、プログラム構造の読み間違いを誘発し、結果として致命的なエラーの原因になることもあります。正確なインテンドを入れる習慣をつけておきましょう。
コメント
長いソースコードになると、どこでどんな処理がしているのかが複雑になります。そこでプログラムを読みやすくするため、ソースコードの中に解説の文を書き込むことができます。この解説文をコメント(cmment)といい、プログラムのコンパイルと実行の際には無視されますので、動作には全く影響しません。ちなみに日本語での記述も可能です。
//コメント本文(行末まで)
// mainブロック
int main(void)
{
int age; // 年齢を入れる箱
age = 20;
printf("私は%d歳です¥n", age);
return 0;
}
/*コメント本文(複数行書いてもよい)*/
/* プログラム Main
作成者 : ぷーたろー 作成日 : 2022年1月1日 */
#include <stdio.h>
main関数
計算や表示などの命令を書いていく場所は、ブロックの内側です。ブロックのすぐ上の行にmainの表記があることから、この部分はmain関数(main function)とも言われます。
main関数の中には、文(statement)を処理させる順に書いていきます。プログラムの実行時には、文は上から順に1行ずつ処理されていきます。そして、最後の文として、「return 0;」という一文を書くことも覚えておきましょう。また、文末には必ず ;(セミコロン)を付けるのがC言語のルールです。
main関数の中には様々な文を書くことができ、C言語には多くの種類の文が存在します。本記事では、変数宣言の文、計算の文、命令実行の文、という3種類を紹介します。
① 変数宣言の文:データを入れる箱を準備する。
② 計算の文:様々な計算をして結果を箱に入れる。
③ 命令実行の文:C言語が準備している命令を呼び出す。