Aller au contenu

Tutoriel C — Du débutant à l'expert

Bienvenue dans ce tutoriel complet sur le langage de programmation C. Ce cours couvre tout l'écosystème C, des bases fondamentales jusqu'aux techniques avancées utilisées en programmation système.

Structure du projet

c-tutorial/
├── docs/
│   ├── cours/          # Leçons théoriques avec exemples exécutables
│   ├── exercices/      # Exercices pratiques par chapitre
│   ├── solutions/      # Corrections annotées
│   └── annexes/        # Références et ressources complémentaires
├── ch01_introduction/  # Code source C des chapitres
│   ...
└── CMakeLists.txt      # Build des exemples avec CMake

Sommaire

Niveau 1 — Fondamentaux

# Chapitre Thèmes abordés
1 Introduction au langage C Structure d'un programme, #include, main(), printf, codes de retour
2 Variables & types de données int, float, char, sizeof, modificateurs, spécificateurs de format
3 Les constantes #define, const, portée, types — constantes de préprocesseur vs variables
4 Les opérateurs Arithmétiques, logiques, bit à bit, incrémentation, affectation composée
5 Entrées & sorties printf, scanf, fgets, séquences d'échappement, gestion du buffer
6 Structures conditionnelles if/else, switch, opérateur ternaire, conditions imbriquées, break
7 Les boucles for, while, do-while, break/continue, boucles imbriquées — Projet : calculatrice CLI

Niveau 2 — Intermédiaire

# Chapitre Thèmes abordés
8 Fonctions & récursivité Prototypes, passage par valeur/pointeur, récursivité, portée des variables
9 Les tableaux Tableaux 1D/2D, indices, parcours, passage en fonction, initialisation
10 Chaînes de caractères \0, <string.h> (strlen, strcpy, strcat, strcmp), sprintf, fgets
11 Les pointeurs &, *, passage par pointeur, arithmétique de pointeurs, NULL
12 Les structures struct, typedef, ., ->, tableaux de structures, imbrication
13 Gestion des fichiers FILE *, fopen/fclose, fichiers texte et binaires, perrorProjet : carnet d'adresses

Niveau 3 — Avancé

# Chapitre Thèmes abordés
14 Allocation dynamique Heap vs Stack, malloc/calloc/realloc/free, fuites mémoire
15 Listes chaînées Noeud, chaînage, insertion, suppression, inversion, gestion mémoire
16 Préprocesseur & macros #define, macros fonctionnelles, compilation conditionnelle, macros prédéfinies
17 Énumérations & unions enum, union, unions taguées, optimisation mémoire
18 Pointeurs avancés Pointeurs de fonctions, void *, const et pointeurs, qsort
19 Projets multi-fichiers Fichiers .h/.c, compilation séparée, CMake — Projet : bibliothèque de structures de données

Prérequis

  • Aucune connaissance du C requise
  • Notions de base en programmation recommandées (variables, boucles, fonctions)
  • Un compilateur C : GCC ou Clang
  • CMake 3.10+ pour compiler les exemples

Installation rapide

# Cloner le tutoriel
git clone https://github.com/claserre9/c-tutorial.git
cd c-tutorial

# Compiler tous les exemples avec CMake
mkdir build && cd build
cmake ..
make

# Installer MkDocs pour la documentation locale
pip install -r requirements.txt
mkdocs serve

La documentation est ensuite disponible sur http://localhost:8000.

Parcours recommandé

  1. Lire le cours du chapitre
  2. Compiler et exécuter les exemples (ch01_introduction/hello_world.c, etc.)
  3. Faire les exercices sans regarder les solutions
  4. Comparer avec les solutions annotées

Licence

MIT — Clifford