Pourquoi s'intéresser au langage C ? Bonne question car le C a été remplacé depuis longtemps par le C++ et on le retrouve de moins en moins dans le développement d'application. Par contre, le langage C a servi de base de nombreux langages de haut niveau (C++, Java et PHP) et l'apprentissage d'un langage de bas niveau est formateur pour la compréhension du fonctionnement d'un système informatique.
Notions de base
Le C est un langage compilé, c'est à dire qu'à partir de plusieurs fichiers code source, le compilateur va produire un exécutable qui est autonome. Voyons comment ça marche :Fonctionnement du compilateur
Le C est un langage multiplateforme, à savoir les exécutables peuvent fonctionner sur de nombreuses machines et sous de nombreux systèmes d'exploitation à condition d'avoir un compilateur adéquat.Le programme est écrit dans un fichier texte. Ce fichier est ensuite compilé en exécutable (par le compilateur et le linker). Pour qu'un programme fonctionne sur une autre plateforme (par ex. un autre système d'exploitation), il suffit de recompiler le programme avec un compilateur fonctionnant pour cette plateforme. C'est cette fonctionnalité qui a contribué a rendre le C aussi célèbre.Structure d'un programme
Tout programme en C commence dans une fonction baptisée main. En général, la fonction main retourne au système d'exploitation un nombre indiquant un code d'erreur s'il n'a pas pu s'exécuter correctement et 0 s'il n'y as pas d'erreur.En C, un bloc est une partie de programme délimitée par des accolades ( {} ) et commençant par un identificateur ou un mot clé. Une fonction est un bloc : elle est délimitée par des accolades. Voici un exemple de fonction main :
main () {
}
L'espace entre les parenthèses est vide car aucune variable n'est passée à la fonction main (par le système d'exploitation). L'ordre dans lequel les fonctions apparaissent dans le fichier source n'a pas beaucoup d'importance. Elles doivent seulement se trouver à la suite de leur déclaration (cf. ch. fonctions). Par souci de clarté, la fonction main est placée en premier et les autres fonctions sont placées après elle.
Liste des identificateurs
Un identificateur est un mot quelconque. Le C tient compte des majuscules et des minuscules. Par exemple, Index et index sont deux identificateurs différents. Un identificateur peut servir à nommer une fonction, une variable, une constante etc... 32 mots sont réservés dans un programme en C et ne peuvent pas être des identificateurs.break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Par ailleurs, chaque instruction d'une fonction doit se terminer par un point-virgule. Voici un petit programme commenté pour illustrer les notions vues ci-dessus.
/* Ajoute les fonctions de stdio.h */
#include <stdio.h>
/* Début */
main () {
/* Affiche du texte */
printf("Bonjour, voici mon premier programme en C");
return 0;
/* fin de la fonction main */
}
Ce programme est composé d'une seule fonction : la fonction main.
Entre les parenthèses de la fonction printf, on place le texte à afficher, sous la forme d'une chaîne de caractères et les variables s'il y en a à afficher et d'un retour à la ligne (CR) ou un saut de ligne (LF)
Les opérateurs
La première tâche d'un programme est d’effectuer des calculs et des comparaisons. C'est pourquoi le langage C définit les caractères suivants comme des opérateurs (les plus courants):Le = sert à attribuer une valeur à une variable. La variable doit toujours être à gauche et la valeur à droite. On peut utiliser le signe = à l’intérieur des expressions (par exemple b=4+3*(y=5) donnera la valeur 19 à b et 5 à y).
Les signes +, -, * et / servent respectivement à additionner, soustraire, multiplier et diviser deux valeurs entre elles. Les priorités entre ces opérateurs sont les priorités habituelles.
Le % est le symbole du modulo. Le modulo est le reste de la division euclidienne. Par exemple : 19 % 5 = 4 car 19 / 5 = 3 reste 4, on peut aussi écrire que le modulo est le nombre m tel que 5 * n + m = 19 avec n un nombre entier quelconque et m le plus petit nombre positif possible.
Les symboles +=, -=, *=, /=, et %= sont des abréviations. Par exemple :
i += 5 est équivalent à i = i + 5
i /= 5 est équivalent à i = i / 5
i %= 5 est équivalent à i = i % 5
Les symboles &&, ! et || servent aux opérations logiques, respectivement au ET logique, au NON et au OU logique
Les signes ++ et -- servent respectivement à incrémenter et à décrémenter une variable.
Voici pour un premier aperçu de la programmation avec le langage C. La semaine prochaine, nous verrons comment faire une application de convertisseur.