Directives de préprocesseurPreprocessor Directives

Directives de préprocesseur, telles que #define et #ifdef, sont généralement utilisés pour rendre les programmes sources faciles à modifier et à compiler dans différents environnements d’exécution.Preprocessor directives, such as #define and #ifdef, are typically used to make source programs easy to change and easy to compile in different execution environments. Les directives contenues dans le fichier source indiquent au préprocesseur d'exécuter des actions spécifiques.Directives in the source file tell the preprocessor to perform specific actions. Par exemple, le préprocesseur peut remplacer des jetons dans le texte, insérer le contenu d'autres fichiers dans le fichier source ou supprimer la compilation d'une partie du fichier en supprimant des sections de texte.For example, the preprocessor can replace tokens in the text, insert the contents of other files into the source file, or suppress compilation of part of the file by removing sections of text. Les lignes de préprocesseur sont reconnues et exécutées avant l'expansion macro.Preprocessor lines are recognized and carried out before macro expansion. Par conséquent, si une macro se développe en quelque chose qui ressemble à une commande de préprocesseur, cette commande n'est pas reconnue par le préprocesseur.Therefore, if a macro expands into something that looks like a preprocessor command, that command is not recognized by the preprocessor.

Les déclarations de préprocesseur utilisent le même jeu de caractères que les instructions de fichier source, sauf que les séquences d'échappement ne sont pas prises en charge.Preprocessor statements use the same character set as source file statements, with the exception that escape sequences are not supported. Le jeu de caractères utilisé dans les instructions de préprocesseur est identique au jeu de caractères d'exécution.The character set used in preprocessor statements is the same as the execution character set. Le préprocesseur reconnaît aussi les valeurs de caractères négatives.The preprocessor also recognizes negative character values.

Le préprocesseur reconnaît les directives suivantes :The preprocessor recognizes the following directives:

#define#define #error#error #import#import #undef#undef
#elif#elif #if#if #include#include #using#using
#else#else #ifdef#ifdef #line#line #endif#endif
#ifndef#ifndef #pragma#pragma

Le signe dièse (#) doit être le premier caractère d’un espace blanc sur la ligne contenant la directive ; les espaces blancs peuvent apparaître entre le signe dièse et la première lettre de la directive.The number sign (#) must be the first nonwhite-space character on the line containing the directive; white-space characters can appear between the number sign and the first letter of the directive. Certaines directives incluent des arguments ou des valeurs.Some directives include arguments or values. N’importe quel texte qui suit une directive (sauf un argument ou une valeur qui fait partie de la directive) doit être précédé par le délimiteur de commentaire sur une ligne (//) ou compris entre des délimiteurs de commentaire ( / **/).Any text that follows a directive (except an argument or value that is part of the directive) must be preceded by the single-line comment delimiter (//) or enclosed in comment delimiters (/* */). Les lignes contenant des directives de préprocesseur peuvent être poursuivies en faisant immédiatement précéder le marqueur de fin de ligne avec une barre oblique inverse (\).Lines containing preprocessor directives can be continued by immediately preceding the end-of-line marker with a backslash (\).

Les directives de préprocesseur peuvent apparaître n'importe où dans un fichier source, mais elles s'appliquent uniquement au reste du fichier source.Preprocessor directives can appear anywhere in a source file, but they apply only to the remainder of the source file.

Voir aussiSee also

Opérateurs de préprocesseurPreprocessor Operators
Macros prédéfiniesPredefined Macros
Informations de référence sur le préprocesseur C/C++C/C++ Preprocessor Reference