Preprocessor
From cppreference.net
<
c
Le préprocesseur est exécuté lors de la phase de traduction 4 , avant la compilation. Le résultat du préprocessing est un fichier unique qui est ensuite transmis au compilateur proprement dit.
Table des matières |
Directives
Les directives de préprocesseur contrôlent le comportement du préprocesseur. Chaque directive occupe une ligne et a le format suivant :
-
#caractère -
instruction de préprocesseur (l'une des suivantes :
define,undef,include,if,ifdef,ifndef,else,elif,elifdef,elifndef(depuis C23) ,endif,line,embed(depuis C23) ,error,warning(depuis C23) ,pragma) [1] - arguments (dépend de l'instruction)
- saut de ligne.
La directive nulle (
#
suivie d'un saut de ligne) est autorisée et n'a aucun effet.
Capacités
Le préprocesseur possède les capacités de traduction des fichiers sources :
-
compilation conditionnelle
de parties du fichier source (contrôlée par les directives
#if,#ifdef,#ifndef,#else,#elif,#elifdef,#elifndef(depuis C23) et#endif). -
remplacement
de macros textuelles avec concaténation ou guillemetage d'identifiants (contrôlé par les directives
#defineet#undef, et les opérateurs#et##) -
inclusion
d'autres fichiers (contrôlée par la directive
#includeet vérifiée avec__has_include(depuis C23) ) -
provoquer une
erreur
ou un
avertissement
(depuis C23)
(contrôlé par la directive
#errorou#warningrespectivement (depuis C23) )
Les aspects suivants du préprocesseur peuvent être contrôlés :
-
comportement défini par l'implémentation
(contrôlé par la directive
#pragmaet l'opérateur_Pragma(depuis C99) ) -
nom de fichier et informations de ligne
disponibles pour le préprocesseur (contrôlé par les directives
#line)
Notes de bas de page
- ↑ Ce sont les directives définies par la norme. La norme ne définit pas le comportement pour d'autres directives : elles peuvent être ignorées, avoir une signification utile ou rendre le programme mal formé. Même si elles sont autrement ignorées, elles sont supprimées du code source lorsque le préprocesseur a terminé. Une extension non standard courante est la directive #warning qui émet un message défini par l'utilisateur pendant la compilation. (jusqu'à C23)
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Références
- Norme C23 (ISO/IEC 9899:2024) :
-
- 6.10 Directives de préprocesseur (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 6.10 Directives de préprocesseur (p: 117-129)
- Norme C11 (ISO/IEC 9899:2011):
-
- 6.10 Directives de préprocesseur (p: 160-178)
- Norme C99 (ISO/IEC 9899:1999) :
-
- 6.10 Directives de préprocesseur (p: 145-162)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 3.8 Directives de préprocesseur
Voir aussi
|
Documentation C
pour
Symboles de Macro Prédéfinis
|
|
|
Documentation C
pour
Index des Symboles de Macro
|
|
|
Documentation C++
pour
Préprocesseur
|