UKOnline

Langage C

Un programme, tout comme une recette finalement, il faut bien évidemment tout d'abord l'écrire. Pour cela, on choisit un langage de programmation, tout comme vous devez bien choisir une langue pour rédiger votre recette. Dans ce livre, nous utilisons le langage C.

Bref historique

Le langage C est un langage de programmation impératif qui a été tout spécialement conçu pour la programmation système. Il a été créé au début des années 1970 avec pour but de réécrire le système d'exploitation Unix. Plus précisément, le langage C a été développé par Dennis Ritchie au cours de l'année 1972 dans les laboratoires de Bell. Le langage C a été notamment influencé par le langage B, développé par Ken Thompson, avec qui Dennis Ritchie travaillait sur Unix.

Le langage C a ensuite été popularisé par Brian Kernighan, qui a notamment procédé à quelques modifications de dernière minute sur le langage. En 1978, Brian Kernighan et Dennis Ritchie ont sorti le livre « The C Programming Language » décrivant le langage stabilisé. Ce livre, aussi appelé « le K&R », est une référence par rapport au langage C tel qu'il existait à l'époque.

Il n'existe pas une seule et unique norme du langage C, plusieurs ont vues le jour suite à la première version de Kernighan et Ritchie. En 1983, l'institut national américain de normalisation (ANSI) a proposé la norme ANSI C (ou C89). Cette norme a ensuite été acceptée en 1990 par l'organisation internationale de normalisation (ISO) qui a proposé la norme C ISO (ou C90). Ces normes sont une évolution du C de Kernighan et Ritchie, mais qui reste compatible. Ensuite, en 1999 sort une nouvelle version de la norme appelée C99. Enfin, plus récemment, l'ISO ratifie une nouvelle version du standard appelée C11.

Mon premier programme

Analysons maintenant ensemble un premier programme écrit en C. La figure 3 vous montre un exemple d'un programme complet tout simple qui affiche simplement les mots « Hello World! » à l'écran.

Mon premier programme : helloworld.c.

Analysons dans le détail toutes les parties de ce premier programme en C que vous avez le loisir d'admirer. On peut identifier plusieurs éléments :

  1. La ligne 1 est un commentaire. Il s'agit d'une information qui n'est pas exécutée par l'ordinateur, mais il faut voir un commentaire comme des notes explicatives pour le programmeur (que ce soit vous-même ou un collègue à qui vous montrez votre code). Un commentaire n'influence en rien l'exécution du programme.
  2. La ligne 3 est une inclusion d'un fichier d'entête. Inclure de tels fichiers permet d'utiliser, dans un programme, du code qui a été défini ailleurs (que ce soit par vous-même ou par d'autres personnes). Cela est très important pour éviter de réinventer la roue et réécrire du code déjà existant par ailleurs. Dans cet exemple, on inclut stdio.h pour pouvoir utiliser printf.
  3. Les lignes 5 à 10 représentent la définition de la fonction main. Cette fonction correspond au point d'entrée du programme, c'est là que l'exécution commence lorsqu'on lance un programme.
  4. La ligne 7 est un appel de la fonction printf. Cette fonction permet d'afficher du texte à l'écran, que l'on spécifie entre guillemets. Il s'agit en fait d'une manière pour un programme de produire une sortie.
  5. Enfin, la ligne 9 est l'instruction de retour. Elle indique la fin de l'exécution de la fonction, et fournit une valeur de retour qui est ici fixée à zéro.

Construction du langage C

L'exemple de programme qui vient d'être présenté permet d'identifier plusieurs éléments utilisés dans la construction de n'importe quel programme C.

  1. Le premier élément important et qu'on a déjà vu, ce sont les commentaires. Il est très important d'en mettre dans ses programmes, mais il faut évidemment que ce soit des commentaires utiles. Inutile de traduire en français chaque ligne de code, ou de raconter sa vie. Un commentaire doit apporter un plus par rapport au code, il doit aider à le comprendre et à comprendre sa structure.
  2. Le deuxième élément sont les mots réservés. Il s'agit de mots qui ont un sens particulier pour le langage. Dans le programme d'exemple, on peut en voir deux : int et return. On verra plus tard que comme ces mots sont réservés dans le langage, cela impliquera des restrictions quant à leurs utilisations.
  3. On peut également retrouver, dans un programme C, des directives préprocesseur. Ces dernières commencent par un croisillon suivie d'un mot (attention à ne pas confondre le croisillon # — ou carré au Québec et en Belgique, ou octothorpe si l'on utilise le nom anglais — avec la dièse ).
  4. Une instruction correspond à la plus petite entité exécutable d'un programme. Un programme est en fait une séquence d'instructions, et exécuter un programme revient à exécuter ses instructions l'une à la suite de l'autre.
  5. Un programme est constitué de fonctions qui rassemblent plusieurs instructions, et à qui un nom est donné. Comme on le verra plus loin, la fonction est un élément constitutif important de la programmation, représentant une portion de code destinée à être réutilisée.
  6. Enfin, un dernier élément d'intérêt sont les chaines de caractères. Il y en a une dans le programme d'exemple, à savoir "Hello World!\n". Intuitivement, il s'agit d'une suite de caractères que l'on place entre guillemets. Comme on le verra plus tard, il y a certain caractères spéciaux que l'on peut insérer. Par exemple, on obtient un retour à la ligne avec la séquence spéciale "\n".