Les pointeurs et les tableaux
- Rappels sur les pointeurs et les tableaux, différences et points communs entre les deux.
- Les trois arguments de la fonction main(), les variables d'environnement.
- Tableaux à plusieurs indices.
- Pointeur de fonctions, tableau de pointeurs de fonctions.
- Allocation dynamique repérée par les pointeurs.
Travaux pratiques
Développement de programmes utilisant les pointeurs de façon intensive.
Les bibliothèques de fonctions
- Bibliothèques standard du langage : ctype.h, math.h, stdlib.h, time.h... et les autres.
- Bibliothèques mathématiques avancées : Linpack, Lapack.
- La gestion de l'allocation dynamique : fonctions calloc(), realloc().
- Fonctions à nombre d'arguments variables existantes et créées par le programmeur.
Travaux pratiques
Utilisation de plusieurs bibliothèques de fonctions.
La récursivité
- Définition de la récursivité.
- Fonctions récursives.
- Structure de données récursives : listes, arbres.
- Algorithmes intrinsèques sur les structures de données récursives (insertion, retrait...).
Travaux pratiques
Création d'une bibliothèque pour la manipulation des données récursives.
Les outils de développement pour le langage C
- Recherche d'erreur dans les programmes : le debugger.
- Outils de gestion de dépendances : make et touch.
- Analyse dynamique de programmes : le profiler.
- Outils de tests : CUnit.
Travaux pratiques
Utilisation des outils de développement pour le langage C.
Du langage C à la programmation orientée objet
- Définitions des notions orientées objet : objet, encapsulation, classe, héritage, polymorphisme.
- Domaines orientés objet traités avec le langage C.
- Du langage C au langage C++.
- Du langage C au langage Java.
Travaux pratiques
Conception orientée objet utilisant le langage C.
Les aspects avancés de la norme C11
- Le multi-threading.
- Les structures et unions anonymes.
- Les fonctions génériques.
- La gestion du codage Unicode.
- Réécriture de certaines fonctions, vérification des tailles des données.
Travaux pratiques
Utilisation des notions ajoutées par la norme C11.