|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Langage C - Le préprocesseurDéfinition du préprocesseurDans les chapitres précédents, un programme simple vous a été présenté, il s'agit du programme suivant : int main(void) { 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 connaît 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 librairie de fonctions, appelé fichier
de définition (éventuellement fichier d'en-tête
ou fichier header), dont l'extension est .h.
Celle-ci se trouve dans le fichier d'en-tête appelé stdio.h.
L'incorporation de la déclaration de la fonction printf()
se fait au moyen de l'instruction #include (que l'on place en
début de fichier) suivie des balises < et > contenant le nom de fichier contenant la définition
de la fonction. La déclaration include doit se trouver avant toute utilisation
des méthodes déclarées, sinon le compilateur générera au minimum un warning.
#include <stdio.h> int main(void) { 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.
Phases de compilationLa compilation se fait généralement en plusieurs phases :
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. Les phases de compilation dans le cas d'un compilateur C sont donc les suivantes :
Trucs & astuces pertinents trouvés dans la base de connaissances
Discussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||