開発環境の構築
開発環境を整えるのはキッチンを備えるようなものです——コンロ(コンパイラ)と調理器具(エディタ)が揃って初めて、料理(コードを書くこと)を始められます。
GCCコンパイラのインストール
GCC(GNU Compiler Collection)は最も人気のある C言語コンパイラで、無料でクロスプラットフォーム対応です。C言語コードを実行ファイルにコンパイルするには、まず GCC をインストールする必要があります。
Windowsでのインストール
Windows では MinGW-w64 または MSYS2 のインストールをお勧めします。どちらも Windows 版 GCC を提供しています。
方法 1:MinGW-w64(初心者にお勧め)
- https://www.mingw-w64.org にアクセスしインストーラをダウンロード
- インストール時に
x86_64アーキテクチャとwin32スレッドモデルを選択 - インストール先ディレクトリの
binフォルダをシステムのPATH環境変数に追加
方法 2:MSYS2(より柔軟)
pacman -S mingw-w64-x86_64-gcc
インストール後、コマンドプロンプトを開いて確認します:
gcc --version
バージョン番号が表示されればインストール成功です。
macOSでのインストール
macOS には GCC が含まれていませんが、Homebrew でインストールできます:
brew install gcc
macOS の組み込み cc コマンドは実際には Clang コンパイラを起動しますが、これも C言語コードをコンパイルできます。確認するには:
cc --version
Linuxでのインストール
ほとんどの Linux ディストリビューションではパッケージマネージャから直接 GCC をインストールできます:
sudo apt install gcc
インストールを確認します:
gcc --version
gcc コマンドを使用します。
VS Codeの設定
VS Code は Microsoft が提供する無料のコードエディタです——軽量で拡張機能が豊富で、C言語コードを書くのに最適です。
VS Codeのインストール
https://code.visualstudio.com からダウンロードしてインストールします。
必須拡張機能のインストール
VS Code を開き、Ctrl+Shift+X で拡張機能マーケットプレイスを開き、次の拡張機能を検索してインストールします:
| 拡張機能 | 目的 |
|---|---|
| C/C++(Microsoft) | シンタックスハイライト、IntelliSense、デバッグサポート |
| Code Runner(Jun Han) | ワンクリックでコードを実行——Ctrl+Alt+N で実行 |
C/C++拡張機能の設定
Ctrl+Shift+P を押し、C/C++: Edit Configurations (UI) と入力し、次の設定が正しいことを確認します:
- Compiler path:GCC のインストールパスを入力(例:
C:/mingw64/bin/gcc.exe) - IntelliSense mode:
gcc-x64を選択 - C standard:
c99を選択
ワンクリック実行の設定
Code Runner をインストールした後、Ctrl+Alt+N で現在の C言語ファイルを実行できます。ターミナルで手動実行したい場合は、コマンドラインから直接使うこともできます。
c-learn)を作成し、単一ファイルではなくフォルダ全体を開いてください。これにより拡張機能が正しく動作します。
最初のプログラム:Hello World
例
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
Hello, World!
1 行ずつ解説します:
#include <stdio.h>— 標準入出力ヘッダファイルを読み込むようコンパイラに指示。printfがここで宣言されていますint main(void)— main 関数を定義。プログラムの開始点。intは整数を返すことを示し、voidは引数を取らないことを示しますprintf("Hello, World!\n")— フォーマット出力関数を呼び出し。\nは改行文字ですreturn 0— オペレーティングシステムに 0 を返し、プログラムが正常終了したことを示します
コンパイルと実行の流れ
C言語はコンパイル言語です——コードをそのまま実行することはできず、まず機械語にコンパイルする必要があります。全体の流れは次のようになります:
ソースコード (.c) → プリプロセス → コンパイル → アセンブル → リンク → 実行ファイル
手順説明
手順 1:ソースファイルを作成
VS Code で hello.c という新しいファイルを作成し、上の Hello World コードを入力して保存します。
手順 2:コンパイル
gcc -o hello hello.c
gcc— コンパイラを起動-o hello— 出力ファイル名をhelloに指定(Windows では.exeが自動付加)hello.c— コンパイルするソースファイル
手順 3:実行
./hello
Windows の場合:
hello.exe
段階ごとのコンパイル
コンパイルの各段階を理解したい場合は、それぞれ個別に実行できます:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.o -o hello
| 段階 | フラグ | 出力 | 説明 |
|---|---|---|---|
| プリプロセス | -E |
.i ファイル |
マクロを展開、#include を処理、コメントを削除 |
| コンパイル | -S |
.s ファイル |
プリプロセス済みコードをアセンブリに翻訳 |
| アセンブル | -c |
.o ファイル |
アセンブリを機械語に翻訳(オブジェクトファイル) |
| リンク | 特別なフラグなし | 実行ファイル | オブジェクトファイルとライブラリを結合して最終プログラムを生成 |
gcc -o hello hello.c で十分です。段階ごとのコンパイルは主に過程を理解したり問題を調査したりする際に役立ちます。
よく使うコンパイラフラグ
| フラグ | 目的 | 例 |
|---|---|---|
-o |
出力ファイル名を指定 | gcc -o prog main.c |
-Wall |
一般的な警告をすべて有効化 | gcc -Wall -o prog main.c |
-Wextra |
追加の警告を有効化 | gcc -Wextra -o prog main.c |
-std=c99 |
C 規格を指定 | gcc -std=c99 -o prog main.c |
-g |
デバッグ情報を生成 | gcc -g -o prog main.c |
-O2 |
最適化レベル 2 | gcc -O2 -o prog main.c |
gcc -Wall -Wextra -std=c99 -o prog main.c でコンパイルしましょう。警告は味方です——多くの潜在的なバグを見つけるのに役立ちます。
よくあるコンパイルエラー
初心者のうちはコンパイルエラーに遭遇します。パニックにならないでください——エラーメッセージを読む力を身につけることが、エラーを避けることよりも重要です。
セミコロンの忘れ
#include <stdio.h>
int main(void) {
printf("Hello, World!\n")
return 0;
}
hello.c:4:33: error: expected ';' before 'return'
エラーメッセージは ファイル名:行:列:エラーの説明 という形式です。ここでは 4 行目の末尾にセミコロンが欠けています。
未宣言の識別子
#include <stdio.h>
int main(void) {
print("Hello, World!\n");
return 0;
}
hello.c:4:5: warning: implicit declaration of function 'print'
printf と書くべきところを print とタイプミスしました——コンパイラがこの関数を認識できません。スペルを確認しましょう。
ヘッダファイルの忘れ
int main(void) {
printf("Hello, World!\n");
return 0;
}
hello.c:2:5: warning: implicit declaration of function 'printf'
#include <stdio.h> を忘れたため、コンパイラが printf の宣言を知りません。
括弧の不一致
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
hello.c:5:1: error: expected declaration or statement at end of input
このコード自体は正しいですが、書いている途中で } をうっかり省略するとこの種のエラーが出ます。コンパイラは「ファイルの末尾に何かが足りない」と告げています——通常は閉じていない括弧です。
プロジェクトのファイル構成
プログラムが複雑になるにつれ、次のようにファイルを整理するのが良い習慣です:
c-learn/
├── ch02/
│ └── hello.c
├── ch03/
│ └── syntax.c
└── ch04/
└── variables.c
章ごとにフォルダを分け、ファイル名は小文字の英語で、内容が分かりやすい名前にします。
❓ よくある質問
📖 まとめ
- GCC は最も広く使われている C言語コンパイラです——Windows では MinGW-w64/MSYS2、macOS では Homebrew、Linux では apt でインストール
- VS Code に C/C++ 拡張機能と Code Runner 拡張機能を追加すれば、軽量で効率的な C言語開発環境が完成
- C言語プログラムはソースコードから実行ファイルまで 4 段階を経ます:プリプロセス → コンパイル → アセンブル → リンク
- 常に
gcc -Wall -Wextra -std=c99でコンパイルし、警告を読む習慣を付けましょう - コンパイルエラーメッセージにはファイル名、行番号、説明が含まれています——それらを読む力を身につけることは核心的なスキルです
📝 練習問題
- 自分のパソコンに GCC をインストールし、
gcc --versionで確認してバージョン番号を記録してください - 自分の名前と挨拶を出力するプログラム(例:「こんにちは、私は太郎です!C言語を学んでいます!」)を書き、コンパイルして実行してください
- 意図的に 3 つのコンパイルエラー(セミコロン忘れ、関数名のタイプミス、ヘッダファイル忘れ)を作り、コンパイラのエラーメッセージを記録して、エラー出力を読む練習をしてください



