Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C言語学習用サンプルプロジェクト

このリポジトリは、C言語の基本概念を網羅した学習用のサンプルプロジェクトです。 チーム内での勉強会や独学に活用できるよう、各トピックごとに実践的なコード例を用意しています。

📚 目次

  1. 基本的なデータ型と演算
  2. 制御構造
  3. 関数とポインタ
  4. 構造体とファイルI/O
  5. 実践プロジェクト

🚀 クイックスタート

前提条件

  • GCCまたはClangコンパイラ
  • Make (任意)

ビルド方法

すべてのサンプルをビルド

make all

個別にビルド

# 基本的なデータ型と演算のサンプル
make basics

# 制御構造のサンプル
make control

# 関数とポインタのサンプル
make functions

# 構造体とファイルI/Oのサンプル
make structs

# 実践プロジェクト(学生管理システム)
make app

手動でビルド

# 例: 基本的なデータ型のサンプル
gcc -o bin/basics src/01_basics/main.c -Wall -Wextra
./bin/basics

クリーンアップ

make clean

📖 学習内容

1. 基本的なデータ型と演算

ディレクトリ: src/01_basics/

学習トピック:

  • 基本的なデータ型(int, float, double, char)
  • 変数の宣言と初期化
  • 算術演算子、比較演算子
  • ビット演算
  • 型変換(キャスト)

実行方法:

./bin/basics

2. 制御構造

ディレクトリ: src/02_control/

学習トピック:

  • 条件分岐(if, else if, else, switch)
  • ループ(for, while, do-while)
  • break, continueの使用
  • ネストされたループ

実行方法:

./bin/control

3. 関数とポインタ

ディレクトリ: src/03_functions/

学習トピック:

  • 関数の定義と呼び出し
  • 引数の値渡しと参照渡し
  • ポインタの基礎
  • 配列とポインタの関係
  • 動的メモリ確保(malloc, free)
  • 関数ポインタ

実行方法:

./bin/functions

4. 構造体とファイルI/O

ディレクトリ: src/04_structs/

学習トピック:

  • 構造体の定義と使用
  • typedef
  • ネストされた構造体
  • ファイルの読み書き
  • バイナリファイルの操作

実行方法:

./bin/structs

5. 実践プロジェクト

ディレクトリ: src/05_project/

学生管理システム

  • 学生情報の登録、表示、検索、削除
  • ファイルへのデータ保存・読み込み
  • メニュー駆動のCLIアプリケーション

これまで学んだすべての概念を統合した実践的なアプリケーションです。

実行方法:

./bin/student_app

🎯 勉強会での活用方法

セッション1: 基礎編(90分)

  1. データ型と演算(30分)
    • src/01_basics/main.c を解説
    • 実際にコードを修正して動作確認
  2. 制御構造(30分)
    • src/02_control/main.c を解説
    • 条件分岐とループの練習問題
  3. 質疑応答(30分)

セッション2: 中級編(90分)

  1. 関数とポインタ(45分)
    • src/03_functions/main.c を解説
    • ポインタの概念を丁寧に説明
    • メモリの図解
  2. 構造体とファイルI/O(30分)
    • src/04_structs/main.c を解説
  3. 質疑応答(15分)

セッション3: 実践編(120分)

  1. プロジェクト全体の解説(30分)
    • src/05_project/ の構造
    • 実際のアプリケーション開発の流れ
  2. ハンズオン(60分)
    • 機能追加の課題
    • ペアプログラミング
  3. コードレビューと質疑応答(30分)

💡 学習のヒント

  • コードを読むだけでなく、実際に書いて実行してみましょう
  • エラーメッセージを恐れずに、いろいろ試してみましょう
  • わからないことは積極的に質問しましょう
  • gdbなどのデバッガの使い方も学ぶと効果的です

📝 練習問題

各サンプルコードには、コメントで練習問題が含まれています。 自分で実装してみて、理解を深めましょう。

🐛 デバッグ方法

GDBの使用

# デバッグ情報付きでコンパイル
gcc -g -o bin/debug_app src/05_project/*.c -Wall -Wextra

# GDBで実行
gdb bin/debug_app

# GDB内で
(gdb) break main      # ブレークポイントを設定
(gdb) run            # 実行
(gdb) next           # 次の行へ
(gdb) print variable # 変数の値を表示
(gdb) quit           # 終了

🔧 トラブルシューティング

コンパイルエラーが出る場合

  • GCCのバージョンを確認: gcc --version
  • パスが正しいか確認
  • -Wall -Wextra で警告を確認

実行時エラーが出る場合

  • Valgrindでメモリリークをチェック: valgrind ./bin/app
  • セグメンテーションフォルトの場合はポインタの使い方を確認

📚 参考資料

🤝 貢献

バグ報告や改善提案は、Issueまたはプルリクエストでお願いします。

📄 ライセンス

このプロジェクトはMITライセンスの下で公開されています。 学習目的であれば自由に使用・改変してください。


Happy Coding! 🎉

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages