Contents
全体像と達成ゴール
| 項目 | 内容 |
|---|---|
| 対象者 | C 言語未経験または数か月程度学習したが、実務レベルの基礎タスクに不安がある方 |
| 期間 | 7 日間(1 日あたり 1.5〜2 時間) |
| 最終的な成果 |
|
| 学習の根拠 | 短時間集中学習は「忘却曲線」の初期急降下前に復習と実装を組み合わせることで記憶定着が促進されます[^1]。また、ハンズオン中心のカリキュラムは「アクティブ・ラーニング」が学習効果を 30% 程度向上させることが報告されています[^2]。 |
2026 年版 C 言語開発環境の構築手順
1. 必要ツールとバージョン(出典付き)
| ツール | 推奨バージョン (2026/03 時点) | 出典 |
|---|---|---|
| gcc | 13.2.0 以上 | https://gcc.gnu.org/releases.html |
| clang | 16.0.0 以上 | https://releases.llvm.org/ |
| VS Code | 1.90.0 以上(公式拡張機能 C/C++ バージョン 2.1.5) |
https://code.visualstudio.com/updates/v1_90 |
| WSL2 (Windows) | Ubuntu 22.04 LTS | https://learn.microsoft.com/windows/wsl/install |
| Homebrew (macOS) | 最新版(2026/03 時点) | https://formulae.brew.sh/formula/gcc |
※ バージョンは執筆時点の「最新」情報です。実際にインストールする際は公式サイトで最新版を確認してください。
2. Windows (WSL2) のセットアップ
- WSL の有効化
管理者権限で PowerShell を開き、以下を実行します。
powershell
wsl --install -d Ubuntu-22.04
再起動後、Ubuntu ターミナルが立ち上がれば OK。
- コンパイラのインストール(Ubuntu 側)
bash
sudo apt update
sudo apt install build-essential clang
gcc --version # → 13.2.0 以上が表示されるはず
clang --version # → 16.0.0 以上が表示されるはず
- VS Code のインストール & 拡張機能
- https://code.visualstudio.com/ から Windows 用インストーラを取得しインストール。
-
VS Code 起動後、拡張機能パネルで「C/C++」と「CMake Tools」をインストール。
-
VS Code 用タスク定義(
/.vscode/tasks.json)
json
{
"version": "2.0.0",
"tasks": [
{
"label": "build (gcc)",
"type": "shell",
"command": "gcc -g ${file} -o ${fileBasenameNoExtension}",
"group": "build"
},
{
"label": "run",
"type": "shell",
"command": "./${fileBasenameNoExtension}",
"dependsOn": "build (gcc)",
"group": "test"
}
]
}
- デバッグ設定(
/.vscode/launch.json)
json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{ "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }
]
}
]
}
3. macOS のセットアップ
- Homebrew が未インストールの場合
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- コンパイラの導入
bash
brew install gcc clang
gcc-13 --version # → 13.2.0 系が表示されるはず
clang --version # → 16.0.0 系が表示されるはず
- VS Code と拡張機能は Windows 手順と同様です。
4. コンパイルフロー(テキスト図)
|
1 2 3 4 5 |
ソースコード (.c) ──► gcc/clang (コンパイル) ──► 実行ファイル (a.out / prog) ▲ │ │ VS Code のビルドタスク/gdb デバッグ └─────────────────────── 端末で実行 ◄─────────────┘ |
デイリーカリキュラム(Day1‑Day7)
| Day | テーマ | 推奨学習時間 | 主なアウトプット例 |
|---|---|---|---|
| Day 1 | 変数・データ型・コンパイル手順 | 1.5 h | hello.c → 「Hello, World!」 |
| Day 2 | 条件分岐・ループ・演算子 | 1.5 h | 数当てゲーム(乱数 + if/else) |
| Day 3 | 関数定義・ヘッダー分割・スタック/ヒープ概念 | 1.5 h | 四則演算ライブラリ calc.h / calc.c |
| Day 4 | 配列・文字列操作・ポインタ入門 | 2 h | 文字列逆転プログラム(配列+ポインタ) |
| Day 5 | ファイル I/O とエラーハンドリング | 2 h | TODO リストのテキスト保存/読込 |
| Day 6 | デバッグ(gdb)・ユニットテスト基礎・Git 初歩 | 2 h | gdb ブレークポイント設定、git init → commit |
| Day 7 | ミニプロジェクト(TODO CLI)実装・レビュー | 2 h | 完成したツールを GitHub にプッシュ |
学習のコツ(忘却曲線対策)
- 学習直後にアウトプット:コードを書いたらすぐにコンパイルし、エラーが出たら即修正。
- 復習タイミング:Day 3 の終わりに Day 1‑2 の内容を 10 分程度復習することで、忘却曲線の急激な低下を抑えます[^1]。
- ペアプログラミング(任意):同僚やオンライン仲間とコードレビューを行うと、理解が深まります。
最終日:TODO リスト CLI の実装例
1. ディレクトリ構成
|
1 2 3 4 5 6 7 8 9 |
todo/ ├─ src/ │ └─ main.c ├─ include/ │ └─ todo.h ├─ data/ # 実行時に自動生成される tasks.txt ├─ .gitignore └─ README.md |
2. コマンド仕様
|
1 2 3 4 |
./todo add "タスク内容" → 新規タスクを末尾に追加 ./todo list → 保存されたタスク一覧を表示 ./todo remove N → 行番号 N のタスクを削除(1 始まり) |
3. ヘッダー include/todo.h
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#ifndef TODO_H #define TODO_H /* タスク追加: 成功すれば 0、失敗したら負のエラーコード */ int add_task(const char *desc); /* 全タスク表示(標準出力) */ void list_tasks(void); /* 指定行番号のタスク削除: 成功すれば 0、範囲外は -1 */ int remove_task(int index); #endif /* TODO_H */ |
4. 実装のポイント
| 項目 | 内容・留意点 |
|---|---|
| ファイル操作 | fopen("data/tasks.txt", "a+") → 追記モードで開く。書き込み後は必ず fflush と fclose を実行。 |
| エラーハンドリング | ファイルが開けなかったら perror("tasks.txt")、remove_task のインデックスが範囲外なら fprintf(stderr, "Invalid index\n");。 |
| 文字列処理 | 行取得は fgets(buf, sizeof buf, fp)、改行除去は buf[strcspn(buf, "\n")] = '\0'; を使用。 |
| メモリ管理 | 小規模ツールなので動的確保は不要。ただし将来的にタスク数が増える場合は malloc/realloc の検討を推奨。 |
| ビルド設定(tasks.json) | json { "label": "build todo", "command": "gcc -Iinclude -g src/main.c -o todo" } |
5. Git フロー例
git init && git add . && git commit -m "Initial commit"git checkout -b feature/add-task→add_task実装、コミット。- GitHub にリモート作成後
git push -u origin feature/add-task。 -
Pull Request を作り、以下をチェックリスト化:
-
コーディング規約(インデントは 4 スペース)
- コメントが関数の目的・引数・戻り値を明示しているか
- エラーメッセージがユーザ視点で分かりやすいか
6. 完成後に試すこと
|
1 2 3 4 5 6 7 8 9 |
$ ./todo add "Buy milk" $ ./todo add "Read C tutorial" $ ./todo list 1: Buy milk 2: Read C tutorial $ ./todo remove 1 $ ./todo list 1: Read C tutorial |
学習チェックリスト & クイックリファレンス
全体チェックリスト
- [ ] 開発環境:
gcc --version、clang --version、VS Code の拡張機能が正常に動作 - [ ] Day1‑Day6:各ミニプログラムがエラーなしでビルド・実行できる
- [ ] gdb デバッグ:最低 3 回以上ブレークポイント設定と変数確認を実施
- [ ] Git 操作:
init,branch,commit,push,PRの一連の流れが完了 - [ ] TODO CLI:
add,list,removeが期待通りに動作し、GitHub に公開済み
クイックリファレンス表
| カテゴリ | 主な API・構文 | 使用例 |
|---|---|---|
| データ型サイズ | sizeof(type) |
printf("%zu\n", sizeof(int)); |
| 標準入出力 | printf, scanf |
printf("Enter: "); scanf("%d", &n); |
| 文字列操作 | strlen, strcpy, strcmp |
char buf[64]; strcpy(buf, "abc"); |
| ファイル I/O | fopen, fprintf, fgets, fclose |
FILE *fp = fopen("data.txt","r"); |
| 動的メモリ | malloc, free |
int *p = malloc(n*sizeof(int)); |
| ポインタ演算 | *ptr, &var, ptr+1 |
int *q = p + 2; |
| コンパイル例 | gcc -g prog.c -o prog、clang -Wall -O2 lib.c -c |
— |
| デバッグ (gdb) | break, run, next, print |
(gdb) break main → (gdb) run |
上記表は学習中に随時
man gcc、man gdbなどで詳細を確認しながら活用してください。
参考文献・出典
- Ebbinghaus, H. (1913). Memory: A Contribution to Experimental Psychology.
- 忘却曲線に関する原典(日本語翻訳版あり)。
- Freeman, S., et al. (2014). “Active learning increases student performance in science, engineering, and mathematics.” Proceedings of the National Academy of Sciences, 111(23), 8410‑8415.
- アクティブ・ラーニングが学習効果を向上させる実証研究。
- GNU Compiler Collection (GCC) – Releases. https://gcc.gnu.org/releases.html(2026/03 時点参照)。
- LLVM Project – Release Notes. https://releases.llvm.org/(2026/03 時点参照)。
- Visual Studio Code – Release 1.90. https://code.visualstudio.com/updates/v1_90(2026/02 更新)。
- Microsoft Docs – Install WSL. https://learn.microsoft.com/windows/wsl/install。
- Homebrew Formulae – gcc. https://formulae.brew.sh/formula/gcc。
最後に
本プランは「短時間で手を動かす」ことを最重要視しています。毎日の学習が完了したら、必ず コンパイル → 実行 → デバッグ のサイクルを回し、エラーや警告はその場で修正してください。7 日間の集中的な取り組みが終わった後も、週に 1 回程度コードを書き続けることで習得したスキルは確実に定着します。
頑張ってください! 🎉