
C言語基礎|プログラムとコンパイルのしくみ
プログラムとは「文字の並び」である
みなさんがエディタで打ち込んだ C言語のプログラムは、
最初からコンピュータが理解できる形になっているわけではありません。
私たちが書いているのは、
人間が読み書きしやすい文字の並び
です。
このような、人間向けに書かれたプログラムのことを
ソースプログラム(source program)
と呼びます。
そして、そのソースプログラムを保存したファイルを
ソースファイル(source file)
と呼びます。
| 用語 | 意味 |
|---|---|
| ソースプログラム | 人間が読むために書かれたプログラム |
| ソースファイル | ソースプログラムを保存したファイル |
source には「もとになるもの」という意味があります。
そのため、ソースプログラムは「原始プログラム」と呼ばれることもあります。

ソースファイルはテキスト形式で保存する
ソースプログラムは、
テキスト形式
で保存されます。
ここでいうテキストとは、
文字データとして扱える形式
という意味です。
C言語では、ソースファイルに
.c
という拡張子を付けるのが慣習です。
たとえば、chap01 というフォルダの中に
sample_calc.c
という名前で保存すると、それが C言語のソースファイルになります。
重要なポイント
| 項目 | 内容 |
|---|---|
| 拡張子 | .c |
| 保存形式 | テキスト形式 |
| 目的 | C言語のソースファイルであることを示す。 |
ソースプログラムはそのままでは実行できない
ここがとても大切なポイントです。
ソースプログラムは、
そのままでは実行できません。
なぜなら、コンピュータが直接理解できるのは、
0 と 1 の並び(ビット列)
だけだからです。
そこで必要になるのが、
コンパイル
という作業です。
コンパイルとリンクの流れ
ソースプログラムを実行できる形に変換するまでには、
いくつかの段階があります。
| 作業 | 内容 |
|---|---|
| コンパイル | ソースプログラムを機械語に翻訳 |
| リンク | 必要な部品を結合 |
| 実行 | 実行プログラムを動かす。 |
この一連の流れを図で表すと、次のようなイメージになります。

この処理が正しく完了すると、
プログラムを実行したときに画面へ結果が表示されます。
エラーと診断メッセージ
もしソースプログラムに誤りがあると、
コンパイルの途中で エラー が発生します。
その際、コンパイラは
診断メッセージ(diagnostic message)
を表示して、どこに問題があるかを教えてくれます。
| 状況 | 対応 |
|---|---|
| エラー発生 | メッセージを確認 |
| 修正 | ソースプログラムを直す。 |
| 再実行 | もう一度コンパイル |
エラーは失敗ではなく、
修正点を教えてくれる案内役
だと考えてください。
サンプルプログラムを見てみよう
ここで、実際の C言語プログラムを確認してみます。
内容と表示メッセージは、指定どおり変更しています。
プロジェクト名:chap1-4 ソースファイル名:chap1-4-1.c
/* 二つの整数を足して結果を表示するプログラム */
#include <stdio.h>
int main(void)
{
printf("%d", 21 + 29); // 二つの整数の合計を表示
return 0;
}このプログラムを実行すると、画面には次の数値が表示されます。
50コメント(注釈)とは何か
プログラムの中で、
/* 二つの整数を足して結果を表示するプログラム */
や
// 二つの整数の合計を表示
と書かれている部分は、
コメント(注釈)
と呼ばれます。
コメントは、
プログラムの動作には一切影響しません。
| 項目 | 内容 |
|---|---|
| 目的 | 読み手に説明を伝える。 |
| 実行への影響 | なし |
| 記述言語 | 日本語・英語どちらでも可 |
コメントは、
他人のためだけでなく、未来の自分のため
にも非常に重要です。
二種類のコメント形式
伝統的コメント
/* コメント内容 */特徴は次のとおりです。
| 特徴 | 内容 |
|---|---|
| 複数行 | 可能 |
| 位置 | どこにでも書ける。 |
| 注意点 | 閉じ忘れると危険 |
閉じるための */ を書き忘れると、
プログラムの終わりまでコメントとして扱われてしまいます。
行末コメント
// コメント内容| 特徴 | 内容 |
|---|---|
| 対象範囲 | その行の終わりまで |
| 終了記号 | 不要 |
| 向いている用途 | 短い説明 |
手軽に書けるため、現在はこちらがよく使われます。
コメントを書くときの注意点
コメントの入れ子はできない
次のような書き方はエラーになります。
/* /* この書き方はNG */ */最初の */ までがコメントと認識されてしまうためです。
コメント内で使える記号
| 状況 | 使用可否 |
|---|---|
| 伝統的コメント内の // | 使用可能 |
| 行末コメント内の /* */ | 使用可能 |
そのため、次の記述はエラーになりません。
/* // このコメントはOK */
/* /* この書き方もOK */プログラムの決まり文句を覚えよう
コメントを除いたプログラムは、次のようになります。
#include <stdio.h>
int main(void)
{
printf("%d", 21 + 29);
return 0;
}この形は、
C言語プログラムの基本形(決まり文句)
です。
| 部分 | 役割 |
|---|---|
| include | 機能の読み込み |
| main | プログラムの入口 |
| printf | 表示 |
| return 0 | 正常終了 |
意味はこれから少しずつ理解していけば大丈夫です。
まずは 形を覚えること が大切です。
stdio.h の名前に注意
stdio は
standard input/output(標準入出力)
の略です。
studio ではないので、
綴りには注意しましょう。
まとめ:コンパイルのしくみを意識しよう
この章で覚えておきたいポイントは次のとおりです。
| ポイント | 内容 |
|---|---|
| ソースプログラム | 人間向けの文字の並び |
| 実行前の作業 | コンパイルとリンクが必要 |
| コメント | 読み手のための説明 |
| エラー | 修正点を教えてくれる。 |
プログラムには記号が多く、
最初は戸惑うかもしれません。
でも大丈夫です。
一つひとつ意味を知っていけば、必ず読めるようになります。
