Introduction

Icône de l'outil pédagogique Introduction

Pourquoi le Langage C ?

 

Incontournable pour l’informatique industrielle

 

Autrefois programmables uniquement en Assembleur, les processeurs utilisés en informatique industrielle (microcontrôleurs, DSP) sont à présent tous fournis avec un compilateur C. Le Langage C est "plus proche de l'Assembleur" que d'autres langages, donc convient bien aux applications d'informatique industrielle.


Pour le meilleur et pour le pire

Le Langage C est un langage puissant et permissif : qualités ou défauts selon le niveau du programmeur, ces deux caractéristiques liées n'en font malheureusement pas l'ami des débutants, à qui un cadre plus rigide comme celui du Pascal convient mieux.


Des codes sources portables… ou presque

Le Langage C est portable sous certaines conditions : « portable » signifie qu’un même fichier source peut être compilé avec des compilateurs différents, pratiquement sans modifications. Pour être portable, un fichier source doit être écrit en C normalisé ("CANSI" ou "ISO").
Mais cette portabilité a ses limites :

- chaque IDE (Environnement de Développement Intégré) ajoute aux instructions et fonctions C de base, appartenant au Langage C normalisé, des fonctions supplémentaires spécifiques qui sont parfois bien pratiques : primitives d'entrées‐sorties, graphiques, sonores, primitives utiles en informatique industrielle... Il faut éviter l'usage de ces primitives pour que les programmes sources obtenus soient du « C normalisé pur », c'est‐à‐dire soient portables sous un autre compilateur et/ou sur un autre type de machine.

- le Langage C des microcontrôleurs est un dialecte plutôt qu’un langage : certaines instructions spécifiques (en particulier l’accès aux ports d’entrée/sortie) dépendent entièrement du compilateur utilisé.

La portabilité complète est difficile à atteindre. Quand on ne peut/veut pas éviter d’utiliser quelques primitives spécifiques de l‘IDE, ou quand on utilise des instructions spécifique d’un microcontrôleur, la solution est alors de les isoler dans des zones (fonctions) bien particulières du programme. Seules ces parties de code, non portables, seront à réécrire en cas de migration vers un autre compilateur. L’exemple le plus classique est celui des entrées/sorties du programme (interface graphique, accès à des ports de microcontrôleur, etc.) : il ne faut pas les mélanger à des parties facilement portables comme les calculs et autres traitements décisionnels.
Quelques (rares) exemples de ce document contiennent des fonctions spécifiques à l’environnement de développement (fonctions non portables). Elles seront toujours signalées par un commentaire.


C ou C++ ?


Les logiciels de développement en Langage C sur PC sont souvent des logiciels de C++ (Langage C « Orienté Objet »). Mais ils conviennent parfaitement pour faire du "C pur" : le C++ contient un noyau de C et des couches supplémentaires pour programmer en "Orienté Objet" ("++"). Nous ne parlerons ici que de C.


Help !

Dans l'environnement CVI :
Pour obtenir des informations sur une fonction, placez le curseur sur le nom de la fonction (avec parenthèses, même vides) et tapez <CTRL> P. Vous obtenez ainsi le "panneau de fonction", où le clic droit de souris vous sera très utile.
F1 fournit l'aide générale.


Les bonus : débogueur et règles de style


Outre la présentation du Langage C proprement dit, vous trouverez en annexe dans ce document les commandes de base du "débogueur". Cet outil pratique et très simple à utiliser nous aide à trouver les erreurs lors de l’exécution du programme : exécution pas à pas, visualisation des variables…(debug).
Les commandes de debug, qu'on retrouve dans tous les logiciels de développement (sous des noms parfois un peu différents), sont rapidement indispensables quand la taille du programme augmente... mais aussi quand on veut éviter de fastidieuses entrées/sorties au début des tests (lecture du clavier, affichage à l’écran).
Vous trouverez aussi dans ce document des "règles de style". Ce sont des conseils destinés à vous faire programmer de façon propre et lisible. Bien que ces règles de style ne soient pas une obligation imposée par le compilateur, il est important de les respecter pour que vos programmes soient clairs et évolutifs.
Ce document n’est donc pas un simple catalogue des instructions disponibles en Langage C. Il vous donne aussi des conseils de programmation qui permettent de bien programmer.


Ce document pour qui ?


J’enseigne dans les domaines de l’électronique et de l’informatique industrielle à l’IUT de Cachan. L’approche de ce document est donc parfois celle de l’« électronicien / informaticien industriel », qui navigue entre PC et microcontrôleurs sous des environnements variés, plutôt que celle de l’« informaticien pur », qui ne programme que sur PC ou équivalent.
Par exemple, le type entier int sera en général remplacé par un type dérivé plus précis comme short ou long int (car int n’a en général pas la même taille sur un PC et sur un microcontrôleur). Certains chapitres, comme les opérateurs de manipulation de bit très utiles en Informatique Industrielle, sont très développés.
Cette approche « Informatique Industrielle », parfois plus exigeante, est tout à fait compatible avec celle de l’informaticien pur.

 

Les symboles de ce document

Les remarques, les règles de style et les points dangereux seront signalés par les symboles suivants :


Ceci est une remarque
Ceci est une règle de style : elle n’est pas obligatoire pour le compilateur, mais il faut suivre cette règle pour écrire un beau programme, lisible et évolutif.
Ceci est un point dangereux


J’ai besoin d’un environnement de développement en C !


De nombreux environnements intégrés gratuits sont téléchargeables sur Internet, comme CodeBlocks ou DevCPP. On peut leur adjoindre des bibliothèques spécifiques, comme SDL pour le graphisme.
Les programmes de ce document ont été écrits sous CVI, un excellent IDE de National Instruments (payant).