Langage C – Fondamentaux de la programmation Mixte : présentiel / à distance

Dernière mise à jour : 27/08/2026

Description

Module 1 – Environnement de développement et chaîne de compilation C 

  • Panorama des normes du langage : C89, C99, C11, C17, C23 ; norme de référence utilisée en formation (C17) et principales évolutions apportées par C23 
  • Compilateurs GCC et Clang, phases de la compilation (préprocesseur, compilation, assemblage, édition de liens) 
  • Structure d'un programme C : fichier source, fonction main, en-têtes 

Démonstration : compilation en ligne de commande avec les options -std=c17 -Wall -Wextra -Wpedantic -O0 -g, lecture des messages du compilateur, premier pas à pas dans un débogueur (gdb) 

Exemples de travaux pratiques : 

  • Écriture et compilation d'un premier programme C 
  • Correction d'un programme à partir des avertissements du compilateur 

 

Module 2 – Types de données et structuration de l'information 

  • Variables de types prédéfinis et types à largeur fixe (stdint.h) 
  • Tableaux, constantes et énumérations 
  • Structures (struct), unions et typedef 

Exemples de travaux pratiques : 

  • Exercice de déclaration de variables de différents types (simples, tableaux) 
  • Lancement du projet fil rouge : modélisation d'un contact (structure regroupant nom, prénom, téléphone, e-mail) et création d'un tableau statique de contacts 

 

Module 3 – Opérateurs et structures de contrôle 

  • Opérateurs arithmétiques, relationnels, logiques et bit à bit ; affectations composées 
  • Conversions et promotions de types 
  • Structures conditionnelles (if/else, switch) et boucles (for, while, do...while) 
  • Directives de préprocesseur utiles en pratique : #define, compilation conditionnelle, include guards 

Atelier pratique : lecture et refactoring d'un programme fourni comportant des structures de contrôle imbriquées 

Exemples de travaux pratiques : 

  • Ajout au projet fil rouge d'un menu interactif (saisir, afficher, quitter) permettant de peupler et consulter le tableau de contacts 
  • Validation du format d'un numéro de téléphone ou d'une adresse e-mail saisis par l'utilisateur 

 

Module 4 – Fonctions et organisation d'un projet C  

  • Déclaration, définition et appel de fonctions ; prototypes 
  • Portée des variables (locale, globale, statique) et passage de paramètres par valeur 
  • Découpage d'un programme en plusieurs fichiers sources et fichiers d'en-tête 
  • Compilation séparée et introduction au Makefile 

Cas concret : refactorisation du projet fil rouge en fonctions dédiées (ajout, recherche, affichage d'un contact) 

Exemples de travaux pratiques : 

  • Répartition du projet fil rouge en plusieurs fichiers sources et compilation à l'aide d'un Makefile 

 

Module 5 – Chaînes de caractères et pointeurs 

  • Manipulation des chaînes de caractères : strlen, strcmp, strncpy, strncat, snprintf ; fonctions de conversion (strtol, strtod) ; fonctions à proscrire (gets, strcpy, strcat, sprintf) et raisons de leur mise à l'écart 
  • Notion de pointeur : adresse et valeur, arithmétique de pointeurs, lien entre pointeurs et tableaux, pointeurs de fonctions 

Démonstration : observation en débogueur des adresses mémoire et du contenu des pointeurs 

Exemples de travaux pratiques : 

  • Sécurisation de la saisie et de la comparaison des champs texte (nom, e-mail) du projet fil rouge à l'aide des fonctions de la bibliothèque standard 
  • Parcours du tableau de contacts à l'aide de pointeurs 

 

Module 6 – Gestion dynamique de la mémoire et manipulation de fichiers  

  • Allocation dynamique : malloc, calloc, realloc, free ; bonnes pratiques (vérification des retours, mise à NULL après libération, prévention des fuites et des doubles libérations) 
  • Ouverture, lecture, écriture et fermeture de fichiers ; gestion des erreurs d'entrée/sortie 

Démonstration : détection, à l'aide de Valgrind ou d'AddressSanitizer, d'une fuite mémoire introduite volontairement dans une variante du projet fil rouge 

Exemples de travaux pratiques : 

  • Migration du tableau statique de contacts vers une allocation dynamique (realloc) permettant un annuaire de taille variable 
  • Sauvegarde et rechargement de l'annuaire de contacts dans un fichier texte 

 

Module 7 – Structure de données chaînée : projet de synthèse 

  • Principe de la liste chaînée simple : ajout, parcours, suppression, libération complète de la structure 

Mise en situation professionnelle : migration de l'annuaire de contacts vers une liste chaînée pour une gestion dynamique de l'ajout et de la suppression ; revue de code collective à partir d'une grille de bonnes pratiques (gestion mémoire, robustesse, lisibilité) 

Exemple de travaux pratiques : 

  • Projet final : finalisation de l'annuaire de contacts sous forme de liste chaînée (ajout, affichage, recherche, suppression, libération complète de la mémoire)

Objectifs de la formation

À l'issue de la formation, le stagiaire sera capable de : 

  • Mettre en œuvre une chaîne de compilation C (préprocesseur, compilation, édition de liens) avec GCC ou Clang 
  • Écrire des programmes C structurés en respectant la syntaxe et les conventions du langage 
  • Utiliser les opérateurs, les structures conditionnelles et les boucles pour construire des algorithmes 
  • Déclarer, appeler et organiser des fonctions au sein d'un projet réparti sur plusieurs fichiers sources 
  • Manipuler les chaînes de caractères et les structures de données du C de façon sécurisée 
  • Utiliser les pointeurs et gérer dynamiquement la mémoire en appliquant les bonnes pratiques de prévention des erreurs mémoire 
  • Lire et écrire des données dans des fichiers, et mettre en œuvre une structure de données chaînée simple 

Public visé

Cette formation s'adresse aux développeurs et informaticiens qui souhaitent acquérir les bases du langage C, qu'ils découvrent ce langage ou qu'ils aient besoin de consolider des connaissances acquises de façon empirique. Elle convient notamment : 

  • aux développeurs venant d'un autre langage (Java, Python, C#, PHP, etc.) amenés à évoluer vers le C dans le cadre d'un projet système, embarqué ou industriel 
  • aux informaticiens devant lire, maintenir ou faire évoluer une base de code C existante 
  • aux étudiants, alternants ou jeunes diplômés en informatique souhaitant consolider leurs bases avant une prise de poste technique 
  • aux profils techniques d'administrations, de collectivités ou d'entreprises privées confrontés à des environnements logiciels reposant sur le C (systèmes, automatismes, outillage interne) 

Prérequis

  • Avoir déjà programmé dans au moins un langage (notion de variable, de boucle, de fonction, de test conditionnel), quel qu'il soit 
  • Être à l'aise avec l'usage d'un terminal / d'une ligne de commande 
  • Aucune connaissance préalable du langage C n'est requise 

M'inscrire à la formation

Cette session se passera en partie à distance et en partie en présentiel


Détail des créneaux de la session sélectionnée :
Ajouter au panier

Session sélectionnée


  • TOULOUSE COMPLÈTE

Prochaines Sessions

  • 21/09/26 → 25/09/26 Présentiel / à distance

Partager cette formation

Accessibilité

Sélectionnez le niveau de contraste souhaité
Réduisez les animations
Adaptez la taille de la police
Sélectionnez la police de caractères souhaitée

Déclaration d'accessibilité