Préprocesseur
De cppreference.com
< cpp
Le préprocesseur est exécuté avant que la compilation ne commence. Le résultat du prétraitement est un seul fichier "source intermédiaire" qui est ensuite passé au compilateur réel.
[modifier] Directives
Les directives de prétraitement contrôlent le comportement du préprocesseur. Chaque directive occupe une ligne et a le format suivant :
- commence par le caractère
#
- l'instruction pré-traitement (un parmi
define
,undef
,include
,if
,ifdef
,ifndef
,else
,elif
,endif
,line
,error
,warning
,pragma
) - des paramètres (dépend de l'instruction)
- saut de ligne
La directive nulle (#
suivie d'un saut de ligne) est autorisée et n'a pas d'effet.
[modifier] Capacités
Le préprocesseur a les capacités de traduction du fichier source :
- compilation conditionnelle de parties de fichier source (contrôlé par les directives
#if
,#ifdef
,#ifndef
,#else
,#elif
et#endif
). - remplacement de macros de texte (contrôlé par les directives
#define
et#undef
, et les opérateurs#
et##
) - inclusion d'autres fichiers (contrôlé par la directive
#include
) - provoquer un avertissement (contrôlé par la directive
#warning
) - provoquer une erreur (contrôlé par la directive
#error
)
Les aspects suivants du préprocesseur peuvent être contrôlés :
- comportement défini par l'implémentation (contrôlé par la directive
#pragma
) - nom de fichier et les informations de ligne à la disposition du préprocesseur (contrôlé par la directive
#line
)