Les directives servent à préparer la compilation d'un programme. Sans directives, un programme n'a pas d'intérêt, en effet, pour lire une donnée, écrire un résultat, il faut intégrer au programme les informations permettant de le faire. Ces directives se trouvent dans des fichiers appelés « fichiers d'en-tête » (ce sont des fichiers sans suffixes, certains ont un suffixe .c pour indiquer que ce sont des fichiers d'en-tête écrit en C).
Lorsque l'on lit une directive #include, le préprocesseur provoque des transformations du texte du programme, avant la compilation.
La pré-compilation intervient avant la compilation. Certaines des actions possibles sont : l'inclusion d'autres fichiers dans le fichier à compiler, la définition des constantes symboliques et des macros, la compilation conditionnelle et l'exécution conditionnelle de directives de pré-compilation.
Toutes les directives commencent par #, ce ne sont pas des instructions (pas de ;) et elles sont traitées en totalité avant le démarrage de la compilation proprement dite.
[...] Si un type ne contient qu'un modificateur sans type, il s'agit de int. char, signed char et unsigned char sont des types différents. Le type char est celui qui convient le mieux à la réalisation et à la manipulation des caractères sur un ordinateur ; c'est généralement un octet. La taille des objets est exprimée en termes de multiples de la taille d'un char. Les relations suivantes entre les tailles des types fondamentaux sont garanties : sizeof(char) sizeof(short) sizeof(int) [...]
[...] Dans le cas contraire la directive #define est éludée. Chaque construction #if se termine par #endif. Les constructions #ifdef et #ifndef sont des raccourcis pour #if defined et #if !defined. Dans un fichier d'en-tête : #ifndef _nom #define _nom . #endif Permet de tester si _nom n'est pas défini, le définir sinon ne rien faire : cela évite de copier plusieurs fois les définitions de types et fonctions qui suivent (ce qui entraînerait des redéfinitions). Assertions La macro assert teste la valeur d'une expression, si celle-ci vaut assert affiche un message d'erreur et appelle la fonction abort de la bibliothèque d'utilitaires généraux pour terminer l'exécution du programme. [...]
[...] Pour les réels : float : 32 bits [ 3.4 10- 1038] double : 64 bits [ 1.7 10- 10308] long double : 80 bits [ 3.4 10- 104932] Le type booléen existe en et pas en C. Toute valeur non nulle est true correspond à la valeur false. Représentation des constantes : les constantes entières : 45, -45. les constantes réelles s'écrivent en base 10, en notation décimale (avec un ou exponentielle : e les caractères imprimables s'écrivent les caractères spéciaux : \ " ' et ? se notent et ?'. [...]
[...] #endif Le fichier d'implémentation domino.cpp #include "domino" void creer_domino(domino int int { . } . Un fichier d'en-tête jeu_de_dominos contenant le type jeu (ensemble de dominos) et les fonctions et procédures à définir sur un jeu de dominos. Ce fichier doit inclure le fichier d'en-tête domino. #ifndef _jeu_de_dominos #define _jeu_de_dominos #include"domino" définir le type jeu_de_dominos fonctions et procédures void creer_jeu_de_dominos(jeu_de_dominos void placer(jeu_de_dominos domino); . #endif Le fichier d'implémentation jeu_de_dominos.cpp #include "jeu_de_dominos" void creer_jeu_de_dominos(jeu_de_dominos { . } . Enfin, un fichier main.cpp qui ne contient qu'un programme principal et permet d'utiliser les dominos et jeu de dominos. [...]
[...] L'avantage des macros réside dans le fait qu'elles insèrent du code directement dans le programme, évitant la surcharge due aux appels de fonctions (on pourrait définir une fonction aire_du_cercle) et que le programme reste lisible car la macro est nommée explicitement et définie séparément. Compilation conditionnelle La compilation conditionnelle permet au programmeur de contrôler l'exécution des directives de pré-compilation. Chacune des directives conditionnelles évalue une expression entière constante qui détermine si le code est compilé. #if !defined (NULL) #define NULL 0 #endif Ce code permet de déterminer si la constante symbolique NULL est déjà définie. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture