Description
Durant ces 2 jours de formation, vous étudierez les mécanismes avancés vous permettant de gérer des projets complexes sur des environnements multi-cibles. Vous apprendrez également à mettre en place des tests unitaires de qualité et serez initié à la programmation des threads ‘Posix’.
Cette formation Langage C Avancé s‘adresse à des programmeurs et programmeuses expérimentées maîtrisant déjà le langage C et étant à l’aise avec l’utilisation d’un IDE pour gérer un projet conséquent en langage C (plusieurs fichiers sources, avec des bibliothèques externes).
Si vous débutez avec C, jetez un œil à notre formation Langage C : Les Bases.
Cette formation se répartira avec environ 35% de théorie et 65% de pratique, qui auront lieu seul et parfois en binôme.
Installations nécessaire sur votre machine :
- un PC sous Windows ou Linux, Mac
- Visual C de Microsoft, CLion de Jetbrains
- un Compilateur C propre à chaque OS (msvc, gcc ou clang)
Les objectifs
- Maîtriser la gestion et la production d’une application multi-cibles
- Maîtriser et organiser la mise en place de tests unitaires
- Manager son projet à travers les entrées des fichiers « makefile »
- Concevoir et maintenir une application « multi-threadée » simple
Pré-requis
- Bien connaître le langage C
- Être à l’aise avec l’utilisation d’un IDE pour gérer un projet conséquent en langage C (plusieurs fichiers sources, avec des bibliothèques externes).
- Ordinateur portable à apporter
Le programme de la formation Langage C Avancé
Jour 1 : Rappel et tests
Les types de base en langage C
- Les tableaux, les structures de données, les unions et énumérations
- Les fichiers en langage C
- La portée des variables
- L’allocation dynamique
- Les pointeurs en langage C
Mises en pratique :
- Ecrire et définir en langage C des structures et fonctions pour gérer une table de ‘hashage’
- Création des structures et fonctions permettant de manipuler une pile de chaînes de caractères
- Mise en œuvre de la fonction interne C qsort
Les tests unitaires et le TDD
- Les tests unitaires avec la fonction interne C
assert
- Les tests unitaires avec une bibliothèque externe
- Etude et mise en œuvre du TDD
Mises en pratique :
- Création des tests unitaires pour une fonction de recherche d’un élément dans un tableau de nombres flottants
- Mise en œuvre de TDD sur une fonction de recherche dichotomique sur un tableau ordonné
La chaîne de fabrication d’un programme C
- Rappel sur la chaîne de fabrication d’un programme : pré-processeur, compilation, éditions de liens
- Rappel sur l’organisation interne d’un programme en C, les sources, les librairies
- La fabrication des programmes cibles : le fichier "makefile" et son utilitaire
make
- La production d’une bibliothèque en langage C : fichier d’entête, fichier binaire, fichier de liens, fichier de fabrication
- Interagir avec le programme source à travers les paramètres en ligne de commande du compilateur
Mises en pratique :
- Mettre en place de 2 chaînes de fabrication séparées, l’une pour les tests, l’autre pour produire le programme final
- Produire une bibliothèque en langage C
Jour 2 : Threads et préprocesseur
Introduction aux threads « Posix » en langage C
- Présentation des cas d’usage
- Etude de la bibliothèque pthread.h
- Lancer et contrôler un thread
- Les mécanismes de synchronisation entre threads
Mises en pratique : Mise en place d’une chaîne de traitements unitaires avec des threads
Le préprocesseur
- Rappel sur l’inclusion des fichiers de définition avec
#include
- Rappel sur l’utilisation des macros définies dans les bibliothèques standards
- Définir et gérer des propres macros avec
#define
et #undef
- Définir des macros avec des paramètres
- Mise en œuvre des opérateurs internes
#
et ##
- La compilation conditionnelle :
#if
, #ìf defined
, #ifdef
, #ifndef
, #elif
, #endif
- La directive
#pragma
Mises en pratique : Mise en place de la compilation conditionnelle en fonction de l’OS cible
Télécharger le programme
Formateur
Yves est développeur Python freelance depuis 15 ans. Son activité professionnelle Python se répartit à part égale, entre du développement et de la transmission de savoir aussi bien en écoles d'ingénieur qu'en formation auprès des entreprises. Il intervient aussi sur des sessions de formation en C, C++ et SQL.
Ses principales missions Python en développement concernent soit de l'écriture de script backoffice, soit des missions d'audit en vue de refactoring et/ou d'optimisation de code.
Yves est aussi créateur et organisateur du meetup Python de Lille (Lille.py)
FAQ
Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié
Qualiopi, ce qui permet la prise en charge par des organismes comme
Pôle emploi, votre OPCO ou encore le
CPF (Compte Personnel de Formation) pour certaines formations.
Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?
Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.
Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)
Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.
Voici une journée type :
- 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
- 9h30 : la formation commence
- 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
- 14h : reprise de la formation
- 18h : fin de la journée
8 raisons de participer à une formation Human Coders
- Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1648 sessions réalisées). 99% des participants se disent satisfaits de nos formations
- Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
- Catalogue de formations complet : 171 formations au catalogue, de quoi vous accompagner sur tout vos projets
- Écosystème dynamique : Nous accompagnons les dev depuis 13 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
- Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
- Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
- Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
- Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux