- Le préprocesseur de C est une étape séparée dans le processus de compilation, mais pas une partie du compilateur.
- Le préprocesseur de C est juste un outil de substitution des textes et nous nous référerons au préprocesseur de C comme CPP.
|
Le préprocesseur de C
|
- Toutes les lignes de préprocesseur commencent toujours par #. Cette liste est de la page 104 de Weiss. Les directives sans conditions sont comme suit :
- #define - définir un macro de préprocesseur
- #include - insérer un en-tête particulier à partir d'un autre dossier
- #undef - éliminer un macro de préprocesseur
Les directives conditionnelles sont comme suit :
- #ifndef - si ce macro n'est pas défini
- #ifdef - si ce macro est défini
- #if - examiner si un état de temps de compilation est vrai
- #elif - #else un #if dans un rapport
- #else - l'alternative pour le #if
- #endif - conditionnel de préprocesseur d'extrémité
D'autres directives incluent :
- ## - la fusion symbolique, crée une marque simple de deux ceux adjacentes
- # - Stringization, remplace un macro paramètre avec une constante de corde
|
Quelques exemples de ce qui précède est donnés ci-dessous :
|
#define MAX_ARRAY_LENGTH 20
|
|
Le code ci-dessus indiquera le CPP remplacer des exemples de MAX_ARRAY_LENGTH avec 20. Pour augmenter la lisibilité, employer le #define pour des constantes.
|
#include <stdio.h>
#include "mystring.h"
|
|
Le code ci-dessus indique le CPP obtenir stdio.h des bibliothèques système et ajouter le texte à ce dossier. La prochaine ligne indique CPP obtenir mystring.h à partir de l'annuaire local et puis ajouter le texte au dossier.
|
#undef MEANING_OF_LIFE
#define MEANING_OF_LIFE 42
|
|
Le code ci-dessus indique le CPP éliminent MEANING_OF_LIFE et le définissent pour 42.
|
#ifndef IROCK
#define IROCK "You wish!"
#endif
|
|
Le code ci-dessus indique le CPP définir IROCK seulement s'IROCK n'est pas défini déjà.
|
#ifdef DEBUG
/* Your debugging statements here */
#endif
|
|
Thed au-dessus de code indique le CPP faire les rapports suivants si CORRIGER est défini. Si vous passez - le drapeau de DDEBUG à GCC, ceci est utile.
|
Keywords:
The C Preprocessor,
visual studio preprocessor,
c define,
define preprocessor,
if preprocessor,
preprocessor ifdef,
gnu preprocessor,
printf c,
c pointers,
sprintf c,
c tutorial,
c arrays,
fortran preprocessor,
preprocessor string,
c syntax,
c array,
c string,
void c,
preprocessor definition,
the c library
|