Description
Ce programme de formation vise à approfondir les connaissances en programmation, en se concentrant sur des concepts fondamentaux tels que l'architecture des programmes, les types de données, les pointeurs, la gestion de la mémoire et l'optimisation. Les participants exploreront également les appels système, la récursivité, ainsi que l'utilisation d'assembleur. Destiné aux développeurs souhaitant renforcer leurs compétences techniques, ce cursus aborde des standards de portabilité et inclut des méthodes de profiling pour améliorer les performances des applications.
Objectifs
- Connaître les fonctions appartenant aux principales bibliothèques standards du langage C
- Approfondir les concepts de gestion de mémoire
- Utiliser les tableaux et les listes chainées
- Apprendre à travailler en utilisant les bibliothèques dynamiques
- Compiler sous Windows et linux
Récapitulatif
Public
Ingénieurs, Analystes programmeurs désirant se perfectionner au langage C
Prérequis
Avoir suivi la formation "Langage C" ou posséder les connaissances équivalentes
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Rappel de base
- Architecture d'un programme
- Types de données
- Structures de contrôle
- Fonctions et visibilité
- Pointeurs et allocation dynamique
Pointeurs
- Pointeurs de fonction
- Pointeurs de tableau
- Indirections à plusieurs niveaux
Fonctions
- Récursivité
- Nombre de paramètres variables
Appels système
- Processus et fork()
- Lecture d'un répertoire
- Le réseau (sockets)
Gestion de la mémoire
- Tableaux / listes chainées
- Gestion du tas
Déclarations spéciales
- Variables externes
- Fonctions exportées et importées de DLL
- Variables statiques
- Fonctions inline
Constitution et appel de fonctions assembleur
- Faut-il encore utiliser l'assembleur ?
- Mise en œuvre
- Edition des liens
Optimisation
- De la vitesse
- De la mémoire
Profiler
- Objectif du profiling
- Mise en oeuvre
- Interpréter le résultat
Portabilité
- Standard ANSI C
- Standard POSIX
- Unix / Windows
- Bibliothèques partagées (SO, DLL)