Définition du préprocesseur


dans les chapitres précédents, un programme simple vous a été présenté, il s'agit du programme suivant:

main()
{
printf("Ceci est votre premier programme");
}

Dans ce programme la fonction principale main() contient une fonction appelée printf() qui a pour but d'afficher le message "Ceci est votre premier programme". En réalité le compilateur ne connait pas la fonction printf() bien qu'il s'agisse d'une fonction standard du langage C. Cette fonction est effectivement stockée dans un fichier annexe, contenant une libraie de fonctions, appelé fichier de définition (éventuellement fichier d'en-tête ou fichier header), dont l'extension est .h.
Il s'agit donc de préciser au compilateur dans quel fichier se trouve la définition de la fonction printf()...
Celle-ci se trouve dans le fichier d'en-tête appelé stdio.h.
La désignation stdio signifie Standard Input Output (en français Entrées Sorties standards), c'est-à-dire que ce fichier contient la définition de nombreuses fonctions permettant l'entrée (saisie au clavier, ...) et la sortie (affichage, sortie dans un fichier, ...) de données, dont la fonction stdio.h fait partie.

L'incorporation de la déclaration de la fonction printf() se fait au moyen de l'instruction #include (que l'on place par convention en début de fichier) suivie des balises < et > contenant le nom de fichier contenant la définition de la fonction.
Le programme ci-dessus pour pouvoir être compilé doit donc s'écrire:


#include <stdio.h>

main()
{
printf("Ceci est votre premier programme");
}

Le fichier est maintenant apte à être compilé. Il existe d'autres commandes du préprocesseur qui seront détaillées dans ce cours.
Les instructions dédiées au préprocesseur ne se terminent pas par un point-virgule!

Phases de compilation


La compilation se fait généralement en plusieurs phases:

le compilateur transforme le code source en code objet, et le sauvegarde dans un fichier objet, c'est-à-dire qu'il traduit le fichier source en langage machine (certains compilateurs créent aussi un fichier en assembleur, un langage proche du langage machine car possédant des fonctions très simples, mais lisible)
le compilateur fait ensuite appel à un éditeur de liens (en anglais linker ou binder) qui permet d'intègrer dans le fichier final tous les éléments annexes (fonctions ou librairies) auquel le programme fait référence mais qui ne sont pas stockés dans le fichier source.
Puis il crée un fichier exécutable qui contient tout ce dont il a besoin pour fonctionner de façon autonome, le fichier ainsi créé possède l'extension .exe
Dans le cas du langage C, une phase supplémentaire apparaît, il s'agit du traitement du fichier par le préprocesseur C, un programme permet d'inclure dans le fichier source les éléments référencés par les instructions situées au début du fichier source (instructions précédées du caractère #). C'est donc le préprocesseur qui ajoutera dans le fichier source la définition de la fonction printf() qu'il sera allé chercher dans le fichier stdio.h grâce à l'instruction #include.


 

 

 

 











Ajouter aux Favoris Ajouter aux votre page
 

 





Autoformations les cours informatiques en vidéos gratuitement
:: Copyright © 2008 http://www.autoformations.co.cc All rights reserved ::