

Je vous propose ce chapitre ici car il est utile pour les chapitres prochains. si vous n’arrivez pas à tout bien cerner dès le début, vous pourrez revenir dessus à un autre moment, il n’est pas vraiment indispensable.
Pour traduire votre programme du language C vers le language de l’ordinateur (code machine), Votre IDE vas utiliser 3 processus, l’avantage c’est que l’IDE vas les appeler lui même, donc pas besoin de les appeler.
1° Il-y-a le pré-processeur Qui vas éxécuter quelques actions avant de compiler les fichiers, je vous détaillerais son fonctionnement à la fin du chapitre.
2° Le compilateur, comme son nom l’indique, compile tous les fichiers de code contenus dans votre programme, ce sont les fichiers ayant l’extension .c ou .cpp, il les traduit en (code machine) dans des fichiers objets .o ou .obj qui seront normalement effacés à la fin de la compilation; ce code n’est pas exécutable car il manque encore une phase de la compilation.
3° Le linkeur ou éditeur de lien, permet de rassembler toutes les fonctions pour qu’elles puissent s’appeler entre elles et regroupe l’ensemble du projet dans un fichier exécutable. Il permet aussi d’inclure des librairies statiques ou des librairies dynamiques (DLL).
Lorsque vous incluez une librairie statique standard ou que vous avez créée, elle est sans doute déjà compilée, en un fichier .a qui est un simple fichier objet. Le linkeur copie les fonctions de celle -ci dans le projet final.
Avant de compiler le programme le pré-processeur effectue les actions demandées par les lignes commençant par une dièse.
les paramètres de chaque action sont séparés par un espace
#define 1°paramètre 2°paramètre
permet de définir des macros.
Remplace dans tout la suite du fichier le mot donné en 1°paramètre par la valeur du 2°.
ex:
à chaque fois que ONE sera écrit dans le code, il sera remplacé par 1.
pour les mots définis (ici ONE) utilisez plutôt des mots en majuscules pour ne pas vous perdre ensuite dans votre programme.
#undef 1°paramètre
ce n’est pas obligatoire qu’il fonctionne mais permet d’annuler une définition à partir de la ligne où undef est placé.
ex:
Il existe des macro prédéfinies:
__LINE__ : correspond à la ligne courante dans le code du programme.
__FILE__ : Sera remplacée par le nom du fichier en cours de traitement.
__DATE__ : Correspond à une chaîne de caractères contenant la date de traitement du fichier, "Mmm jj aaaa".
__TIME__ : Correspond à un chaîne représentant l’heure de traitement du fichier, "hh:mm:ss".
__STDC__ : seulement dans les implémentations respectant la norme ANSI, elle doit valoir 1.
#include nom fichier
Permet d’insérer à cet endroit le contenu d’un fichier, si le nom du fichier est entouré de crochets: < > le fichier devra se situer dans le dossier d’includes du compilateur ex:C:Dev-C++include
sinon il sera entouré de guillemets " " et sera cherché dans le dossier du projet.
#if condition
Si la condition n’est pas vérifiée le morceau de code contenu entre if et endif sera supprimé.
#ifdef NOM
est égal à #if defined NOM
Si le mot NOM n’est pas défini par #define le morceau de code contenu entre if et endif sera supprimé.
#ifndef
est égal à #if ! defined NOM
Si le mot NOM est défini par #define le morceau de code contenu entre if et endif sera supprimé.
#elif si une condition n’est pas vérifiée permet de tester une nouvelle condition:
ce code:
Le préprocesseur remplacera le code précédent par:
#else
Si aucune condition n’est vérifiée le morceau de code encadré par else et endif sera ajouté.
#line
Permet de changer le numéro de la ligne par une valeur fictive
#error phrase
Fait écrire au préprocesseur la phrase en message d’erreur.
#pragma
Cette dernière directive, sert à faire lancer des actions au préprocesseur.
Vous pouvez écrire par exemple:
Cette ligne demande au compilateur de ne pas inclure plusieurs fois le fichier dans le programme pour éviter d'avoir des erreurs de redondance.

Copyright "NOS Corporation", tous droits réservés
pour me contacter
polo_asm@hotmail.fr