infoclick solution informatique (Gers) - version particulier

 

infoclick solution informatique - Encyclopédie informatique

 
Introduction
Caractéristiques
Préprocesseur
Types de données
Les variables
Les opérateurs
Structures conditionnelles
Les fonctions
Les tableaux
Les structures
Les pointeurs
Chaîne de caractères
Listes chaînées
 
Notion de préprocesseurPage précédentePage suivanteRetour à la page d'accueil

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:

int main(void){printf("Ceci est votre premier programme");}
Dans ce programme la fonction principale main() contient une fonctionappelée printf() qui a pour but d'afficher le message "Ceci est votre premier programme". En réalité le compilateurne connait pas la fonction printf() bien qu'il s'agisse d'une fonctionstandard du langage C. Cette fonction est effectivement stockée dansun fichier annexe, contenant une librairie de fonctions, appelé fichierde définition (éventuellement fichier d'en-têteou fichier header), dont l'extension est .h.
Il s'agit donc de préciser au compilateur dans quel fichier se trouvela 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-à-direque ce fichier contient la définition de nombreuses fonctions permettantl'entrée (saisie au clavier, ...) et la sortie (affichage, sortie dans un fichier, ...)de données, dont la fonction printf() fait partie.

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

#include <stdio.h>int main(void){printf("Ceci est votre premier programme");}
Le fichier est maintenant apte à être compilé. Il existe d'autrescommandes du préprocesseur qui seront détaillées dans ce cours.

NotaLes instructions dédiées au préprocesseur ne se terminent paspar un point-virgule!

Phases de compilation

La compilation se fait généralementen plusieurs phases:

  • le compilateur transforme le code source en code objet, et le sauvegarde dans un fichier objet, c'est-à-direqu'il traduit le fichier source en langage machine (certains compilateurs créent aussi un fichier enassembleur, un langage proche du langage machine car possédant des fonctionstrè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'agitdu traitement du fichier par le préprocesseur C, un programme permet d'incluredans le fichier source les éléments référencés parles instructions situées au début du fichier source (instructions précédéesdu caractère #). C'est donc le préprocesseur qui ajoutera dans le fichiersource la définition de la fonction printf() qu'il sera allé chercherdans le fichier stdio.h grâce à l'instruction #include.

Les phases de compilation dans le cas d'un compilateur C sont donc les suivantes:


Page précédente Page suivante

 
Ce document intitulé «Langage C - Le préprocesseur» issu de CommentCaMarche.net est soumis à la licence GNU FDL.Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.
 

Qui sommes nous - infos légales - contact - liens - plan du site
Copyright © 2004 infoclick - 05 62 07 79 73 - Hôtel d'entreprise / ZI du Pont Peyrin 32600 Isle Jourdain
Valid XHTML 1.0! Valid CSS!