Accueil du site "#-Info Formations"

Formation en langage C et C++...

Le langage C

Inévitablement lié aux développements électronique, les microprocesseurs. Outre la carte électronique les supportant, il faut également développer le logiciel enfoui. Pour ce faire, le langage C est incontournable.

Forts de notre expérience tant dans le développement que dans l'enseignement,
nous pouvons vous proposer nos modules de formation en langages C et C++.

Nos nombreuses interventions sur le langage C nous ont amené à développer un support de cours de près de 300 pages A4 recto-verso, émaillé de nombreux exemples. Nous avons intitulé ce cours :

Le langage C de "A" à "Arbres"

Il nous semblait présomptueux de titre cet ouvrage "Le C de A à Z", tant ce langage est riche. Mais nous abordons la programmation des arbres binaires, ce qui représente des concepts de programmation particulièrement évoluée ! Quelques éléments abordés :

 

Les produits que nous développons depuis 20 ans dans le monde de l'orgue à tuyaux sont dévelopés principalement en langage C.
L'assembleur n'y a qu'une place limitée, et uniquement lorsque le compilateur s'avère moins virtuose pour certaines fonctions spécifiques.

Lorsque le développement atteint plus de 20 000 lignes de programme en langage C, on conçoit aisément que l'écriture d'un tel programme est impossible en assembleur.

En effet, le langage C nous apporte les avantages suivants :

Meilleure lisibilité du code

Que préférez-vous lire : la version en assembleur Freescale 9S12

ldd 58,S
addd #5
tfr D,Y
sty 10,S
ldab [10,S]
tfr B,Y
iny
ldx 10,S
tfr Y,B
stab 0,X
ldd 58,S
addd #5
tfr D,Y
ldab 0,Y
cmpb #59

... ou la version en langage C :

ptr->pendule.h.seconde++;
if (ptr->pendule.h.seconde > 59)
{ ptr->pendule.h.seconde = 0;
. ptr->pendule.h.minute++;
}

(extrait du code de gestion d'une simple horloge heures-minutes-secondes)

Meilleure maintenabilité Vous l'aurez compris dans l'exemple ci-dessus, une bonne lisibilité du code facilite amplement les inévitables évolutions dans le logiciel. Ajoutons à cela une écriture judicieusement commentée, et nous obtenons un code facile à maintenir et à faire évoluer
Types de donénes structurées

Inévitable, dès que l'on aborde un gros logiciel, le type de données structuré. Ainsi, ci-dessous un des types de données utilisé dans nos développements  :

typedef struct TRtiDatas
{

TPendule pendule;
TChrono chrono;
Word timeout_10ms;
Word chrono_10ms;
Byte fin_chrono_10ms;
Byte sostenuto_reste10ms[4];
Byte flags;
Byte provision_chien_20ms;

} TRtiDatas;

Ajoutons à cela qu'en langage C, nous n'avons pas à nous préoccuper des appels de fonctions, passages de paramètres, retours de valeurs, gestion des membres d'une structure de données : le compilateur fait cela pour nous, il a été créé pour cela !


Le langage C++

Principalement lors de nos interventions à l'école d'ingénieur du CESI (cf nos références), nous avons développé un module de cours sur la programmation orientée objet, avec ses implémentations en C++. Les concepts suivants sont abordés :