diff --git a/README.md b/README.md index c0d6b65..2eacbab 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Langage C > [!NOTE] -> Le langage C reste aujourd'hui très utilisé, notamment pour le développement du noyau des systèmes d'exploitation, des logiciels embarqués et des applications nécessitant des performances élevées. Sa simplicité, sa proximité avec le matériel et sa portabilité sont les principales raisons de son succès durable. +> Le langage C reste aujourd'hui très utilisé, notamment pour le développement du noyau des systèmes d'exploitation (kernel), des logiciels embarqués et des applications nécessitant des **performances élevées**. Sa simplicité, sa proximité avec le matériel et sa portabilité sont les principales raisons de son succès durable. - [Histoire du langage C](histoire.md) @@ -32,6 +32,20 @@ Sa syntaxe de base a inspiré de nombreux langages plus récents dont C++, Java - Pas de gestion efficace des erreurs et beaucoup de libertés laissées au programmeur ⇒ rigueur et discipline de programmation ; - Bibliothèque standard assez pauvre. +En GEII, une grande partie des applications concerne : + +- des microcontrôleurs (Arduino, STM32, PIC, AVR…) aux ressources limités (mémoire, CPU, énergie) +- des automates et systèmes **temps réel**, + +Le C est le langage natif de ces environnements. + +- Très proche du matériel +- Pas de machine virtuelle +- Exécutable compact et rapide +- Contrôle précis de la mémoire et prédictif du temps d’exécution + +Dans l’industrie, le C est encore majoritaire pour le firmware. + ## Concepts - [Anatomie d'un programme](anatomie.md) diff --git a/anatomie.md b/anatomie.md index b1e3fe0..8ffbf5e 100644 --- a/anatomie.md +++ b/anatomie.md @@ -29,6 +29,10 @@ On y trouve généralement : - les constantes (#define) - parfois des types (struct, typedef) +En résumé +- .h : une fiche descriptive, une table des matière +- .c : le mode d’emploi détaillé + ## Exemple minimaliste ```c @@ -42,7 +46,11 @@ int main() { // Début de la fonction principale ### Directives de préprocesseur -Les directives de préprocesseur commencent par le symbole # et sont traitées avant la compilation. Elles servent principalement à inclure des bibliothèques ou définir des constantes. +Les directives de préprocesseur commencent par le symbole `#` et sont traitées avant la compilation. Elles servent principalement à inclure des bibliothèques ou définir des constantes. + +La directive `#include` permet d’indiquer au compilateur d’insérer le contenu d’un fichier. + +Cela permet à un fichier .c de connaître les fonctions définies ailleurs. Inclure la bibliothèque d'entrées/sorties standard (stdio : standard input output) @@ -55,6 +63,7 @@ Déclarer une constante ```c #define PI 3.1415 ``` + ### Blocs de code En langage C, les accolades `{ }` définissent un bloc de code. Un bloc regroupe plusieurs instructions qui vont être exécutées ensemble.