
C言語のきほん|C言語をさわってみる
まずは動かす、そこからわかる。C言語の最初の一歩をやさしく体験しよう。
2章で開発環境の準備ができたら、いよいよ「実際に動かしてみる」段階ですね。
ここから先は、難しい理屈を全部理解してから進む必要はありません。まずは、C言語のプログラムを書いて、コンパイルして、実行してみる。この流れを一度体験することがとても大切です。
最初の学習は、絵でいうと下絵を描くようなものです。最初から細部まで完璧に描こうとすると、どうしても手が止まりやすくなります。C言語も同じで、最初は「こういう流れで動くんだ」という全体像をつかめれば十分です。あとから、変数・条件分岐・繰り返し・関数などを一つずつ上塗りしていけば、自然と理解が深まっていきます。
このページでは、C言語の最初の体験として、プログラム作成の基本の流れ(記述 → コンパイル → リンク → 実行)を、表と具体例でしっかり整理していきます。
特に初心者の方がつまずきやすい「コンパイルって何?」「リンクって何?」の違いも、やさしく分けて説明していきます。

C言語をさわるときに最初に知っておきたいこと
C言語の学習では、いきなり文法だけを覚えるよりも、まず「どうやってプログラムが完成するか」を知るのがおすすめです。
C言語のプログラムは、書いたらそのまま実行できるわけではなく、いくつかの段階を通って実行できる形になります。
全体像をつかむためのまとめ
| 項目 | 役割 | ここでのポイント |
|---|---|---|
| ソースコード | 人が読むためのプログラム | VS Code などで書く |
| コンパイル | ソースコードを変換する処理 | 機械に近い形へ変換する |
| オブジェクトファイル | コンパイル後の中間ファイル | まだ実行はできない |
| リンク | 必要な部品を結合する処理 | ライブラリとつなぐ |
| 実行ファイル | 最終的に実行できるファイル | コマンドで起動できる |
初心者のうちは、コンパイルとリンクをまとめて「ビルド」と呼ぶ場面も多いですが、学習の初期で違いを軽く知っておくと、エラーの意味が理解しやすくなります。
初めてのC言語プログラムを作成する流れ
ここでは、本文にある 4つの手順 を一つずつ確認していきます。
この部分は、C言語学習の土台になるので、少し丁寧に見ていきましょう。
① ソースコードを記述する
最初のステップは、テキストエディターでソースコードを書くことです。
たとえば hello.c のように、拡張子を .c にして保存します。このファイルを ソースファイル と呼びます。
ソースコードは人間が読みやすい形で書かれています。
つまり、今の段階では「人向けの説明書」のようなものです。コンピュータはこのままだと直接実行できないため、次にコンパイルが必要になります。
ソースコード記述で出てくる項目
| 項目 | 意味 | 補足 |
|---|---|---|
| ソースコード | C言語で書かれたプログラム本文 | 人が読める形 |
| ソースファイル | ソースコードを保存したファイル | 例: hello.c |
| 拡張子 .c | C言語ファイルであることを示す | ファイル名の最後につく |
| テキストエディター | コードを書くためのソフト | 例: VS Code |
ここで大事なのは、ソースコード = 文字として書いた設計内容であり、まだ実行できるものではない、という点です。
② コンパイルする
コンパイルは、ソースファイルをコンピュータが扱いやすい形に変換する作業です。
Windows環境では、GCC などのコンパイラーを使ってコンパイルします。
このとき作られるのが オブジェクトファイル です。
ただし、このオブジェクトファイルはまだ途中の状態で、そのままでは実行できません。
コンパイルで出てくる項目
| 項目 | 意味 | 補足 |
|---|---|---|
| コンパイル | ソースコードを変換する処理 | コンパイラーが担当 |
| コンパイラー | コンパイルを行うソフト | 例: GCC |
| 機械語 | コンピュータが理解しやすい命令形式 | 人には読みにくい |
| オブジェクトファイル | コンパイル結果の中間ファイル | 例: xxx.o |
| エラー(コンパイル時) | 文法ミスなどで変換できない状態 | この段階で見つかることが多い |
初心者の方は、コンパイルが通っただけで安心しがちですが、まだリンクという大事な工程が残っています。
③ リンクする
リンクは、コンパイルしてできたオブジェクトファイルに、必要なライブラリなどを結合して、実行できる形に仕上げる作業です。
この処理を行うのが リンカー です。
たとえば、画面に文字を出す printf のような機能は、ライブラリ側の部品を使っています。
そのため、ソースコードを書いただけではなく、リンク時に必要な機能を結びつける必要があります。
リンクで出てくる項目
| 項目 | 意味 | 補足 |
|---|---|---|
| リンク | 複数の部品を結合する処理 | 実行ファイル作成の仕上げ |
| リンカー | リンクを行うソフト | ビルド工程の一部 |
| ライブラリファイル | 便利な機能がまとまった部品集 | 画面出力・文字列操作など |
| 実行ファイル | 実際に起動できるファイル | 例: xxx.exe |
| リンクエラー | 必要な部品が見つからないなどの問題 | 関数未定義などで発生 |
コンパイルでソースコードを変換し、リンクで必要な機能をつないで、はじめて実行できる形になる、という順番を意識すると理解しやすいです。
④ 実行する
最後に、リンクして作られた実行ファイルを CLI(コマンドライン)で実行します。
Windowsならコマンドプロンプトで、実行ファイル名を入力して起動します。
ここでやっと、画面にメッセージが表示されたり、処理結果を確認できたりします。
つまり、ここまでが「C言語プログラムを動かす」一連の流れです。
実行段階で出てくる項目
| 項目 | 意味 | 補足 |
|---|---|---|
| 実行 | 実行ファイルを起動すること | 結果を確認する段階 |
| CLI | 文字で命令を入力する画面 | 例: コマンドプロンプト |
| 実行結果 | プログラムの出力内容 | 画面表示や計算結果など |
| 確認 | 期待どおり動いたかを見る | 学習ではここが大事 |
プログラミング学習は、実行して結果を見て、必要なら直して、また実行する、この繰り返しで上達していきます。
C言語プログラム作成の流れを整理
表でわかりやすくまとめ直すと次のようになります。
C言語プログラム作成の流れ(4ステップ)
| 手順 | 作成・利用するもの | 処理内容 | 使用ソフト |
|---|---|---|---|
| ① | ソースファイル(xxx.c) | ソースコードを書く | テキストエディター(VS Code など) |
| ② | オブジェクトファイル(xxx.o) | コンパイルする | コンパイラー(GCC など) |
| ③ | 実行ファイル(xxx.exe) | オブジェクトファイルとライブラリをリンクする | リンカー |
| ④ | 実行結果 | 実行ファイルを動かす | CLI(コマンドプロンプトなど) |
ライブラリファイルとは何かをもう少し詳しく
ライブラリファイルは、よく使う機能をあらかじめまとめた「便利な部品集」のようなものです。
たとえば、画面に文字を表示する処理や、文字列を扱う処理を毎回ゼロから自分で作るのは大変ですよね。
そこで、よく使う機能はライブラリとして用意されていて、リンク時に取り込んで使えるようになっています。
ライブラリのイメージ
| たとえ | C言語での意味 |
|---|---|
| 工具箱 | 便利な機能が入っている |
| 部品棚 | 必要な機能を選んで使える |
| 共通パーツ | 毎回作り直さなくてよい |
初心者のうちは難しく考えすぎなくて大丈夫で、ライブラリ = 便利な機能のまとめと覚えておけば十分です。
Windows 11・VS Code・GCC で学ぶ意味
使用環境の役割
| 項目 | 役割 | 学習でのメリット |
|---|---|---|
| Windows 11 | OS(作業する土台) | 利用者が多く、情報を探しやすい |
| VS Code | テキストエディター | 見やすく、補助機能が多い |
| GCC | コンパイラー | C言語学習の定番 |
| コマンドプロンプト | 実行するCLI環境 | 実行の流れを理解しやすい |
1つ1つのソフトには役割があります。
初心者の方は「どれが何をしているのか」が混ざりやすいので、書くもの(VS Code)と変換するもの(GCC)と実行する場所(コマンドプロンプト)を分けて覚えるのがコツです。
サンプルプログラム
ファイル名:message.c
#include <stdio.h>
int main(void)
{
/* はじめてのC言語実行メッセージを表示する */
printf("First Step C Language\n");
/* プログラムを正常終了する */
return 0;
}処理はシンプルですが、C言語の基本構造(ヘッダ、main 関数、printf、return)がすべて入っています。
「まず動かす」という目的にぴったりです。
サンプルプログラムの各項目
ここでは、上のサンプルプログラムに出てくる各項目を、表と文章でしっかり確認していきます。
サンプルプログラム構成
| 記述 | 役割 | 詳しい説明 |
|---|---|---|
| #include <stdio.h> | 標準入出力の準備 | printf を使うために必要なヘッダファイルを読み込む |
| int main(void) | プログラムの開始地点 | 実行は main から始まる。int は戻り値の型 |
| { } | 処理の範囲を示す | main 関数の中身を囲む |
| /* ... */ | コメント | 説明を書くための文。実行には影響しない |
| printf(...) | 文字を表示する | 画面に文字列を出力する関数 |
| \n | 改行 | 次の表示を改行して見やすくする |
| return 0; | 正常終了を返す | 問題なく終わったことをOSに伝える |
この表では、1行ごとの意味を「役割」と「詳しい説明」に分けています。
学習初期は、なんとなく写経して動かすだけでもOKですが、少しずつ「この1行は何のためにあるか」を理解していくと、次の学習につながりやすくなります。
特に初心者の方がよく気になるのは、#include <stdio.h> と return 0; の2つです。
printf は「表示する命令」としてわかりやすいのですが、前後の部分は意味が見えにくいですよね。
でも、実はこの2つも大事で、前者は printf を使う準備、後者はプログラム終了の合図になっています。
実際の作成から実行までの手順(Windows 11 / GCC)
ここからは、実際にどう操作するかを、具体的なコマンド付きで整理します。
ファイル名は message.c として説明します。
実行までの操作手順
| 手順 | 操作内容 | 例 |
|---|---|---|
| 1 | VS Code でソースコードを作成して保存 | message.c |
| 2 | コマンドプロンプトを開く | 作業フォルダへ移動 |
| 3 | コンパイルする | gcc message.c -o message |
| 4 | 実行する | message |
| 5 | 結果を確認する | C言語の最初の一歩です と表示される |
ポイントは、保存 → コンパイル → 実行の順番を毎回意識することです。
初心者のうちは、保存し忘れて古い内容のままコンパイルしてしまうこともよくあるので、まず保存してから進める習慣をつけると安心です。
コマンドの意味をやさしく分解する
コンパイル時の命令も、見慣れないうちは長く感じます。
ここでは gcc message.c -o message を分解して確認します。
コンパイルコマンドの分解表
| 部分 | 意味 | 役割 |
|---|---|---|
| gcc | GCC を使う命令 | コンパイラーを起動する |
| message.c | 入力ファイル | コンパイルしたいCソース |
| -o | 出力ファイル名を指定するオプション | 作成する実行ファイル名を決める |
| message | 出力される実行ファイル名 | 実行時に使う名前 |
よくあるつまずきポイントも先に知っておこう
最初の学習では、うまくいかないことも普通にあります。
でも、よくある原因はパターンが決まっているので、先に知っておくと安心です。
初学者のよくあるつまずき
| 症状 | よくある原因 | 対応 |
|---|---|---|
| gcc が使えない | GCC のパス設定が未完了 | 環境変数の設定を確認する |
| 実行ファイルが作られない | コンパイルエラーがある | エラーメッセージの行番号を確認する |
| 変更したはずなのに反映されない | 保存前にコンパイルした | 先に保存してから再コンパイルする |
| 実行時に日本語が乱れる | 文字コード設定の不一致 | cmd 側の文字コード設定を確認する |
| ファイルが見つからない | 作業フォルダが違う | cd で正しいフォルダに移動する |
この表は、学習中に「あれ?動かない」となったときの確認用です。
最初はエラーを見て不安になりやすいですが、エラーは「どこを直せばいいか」を教えてくれるヒントでもあります。
一つずつ確認していけば、ちゃんと前に進めます。
ここで登場した各項目の総まとめ
重要な項目を、最後に一覧で整理しておきます。
登場項目の総まとめ
| 項目 | 詳しい意味 | 学習上のポイント |
|---|---|---|
| C言語 | 古くから使われている基本的なプログラミング言語 | 文法が明快で基礎力がつく |
| ソースコード | 人が読めるプログラムの記述内容 | まずはここを書くところから始まる |
| ソースファイル | ソースコードを保存した .c ファイル | 例: hello.c |
| コンパイル | ソースコードを機械向けの形式へ変換する処理 | コンパイラーが担当 |
| コンパイラー | コンパイルを行うソフト | 例: GCC |
| オブジェクトファイル | コンパイル後の中間成果物 | まだ実行できない |
| リンク | オブジェクトとライブラリを結合する処理 | 実行ファイル作成の仕上げ |
| リンカー | リンクを行うソフト | コンパイラーと連携して動くことが多い |
| ライブラリファイル | 便利な機能が入ったファイル | printf などの機能を使う土台 |
| 実行ファイル | 実際に起動できる最終ファイル | Windows では xxx.exe になりやすい |
| CLI | 文字で命令を入力する画面 | コマンドプロンプトなど |
| VS Code | ソースコードを書くエディター | 学習用として使いやすい |
| Windows 11 | 今回の説明対象OS | 操作手順の前提環境 |
ここまでの学びを一言でまとめると
C言語の最初の一歩で大切なのは、完璧に理解することより、一度最後まで動かしてみることです。
ソースコードを書く、コンパイルする、リンクする、実行する。この流れを体験できれば、もう立派なスタートが切れています。
最初は小さなプログラムで大丈夫です。
短いコードでも、自分で書いて、実行して、画面に結果が出る。この体験が、これからの学習のいちばん強い土台になります。
