close
Espaces de noms
Variantes

Préprocesseur

De cppreference.com
< cpp
 
 
Langage C++
Sujets généraux
Contrôle de flux
Instructions conditionnelles
Instructions d'itération
Instructions de saut
Fonctions
déclaration de fonction
expression lambda
fonction générique
spécificateur inline
spécification d'exception (obsolète)
spécificateur noexcept (C++11)
Exceptions
Espaces de noms
Types
spécificateur decltype (C++11)
Qualificatifs
qualificatifs const et volatile
qualificatifs de stockage
qualificatif constexpr (C++11)
qualificatif auto (C++11)
qualificatif alignas (C++11)
Initialisation
Littéraux
Expressions
opérateurs alternatifs
Utilitaires
Types
déclaration typedef
déclaration d'alias de type (C++11)
attributs (C++11)
Jette
Original:
Casts
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
conversions implicites
conversion const_cast
conversion static_cast
conversion dynamic_cast
conversion reinterpret_cast
conversions style C et style fonction
Allocation de mémoire
Classes
Qualificatifs spécifiques aux membres de classe
Fonctions membres spéciales
Modèles
classes génériques
fonctions génériques
spécialisation de modèles
paquets de paramètres (C++11)
Divers
Assembleur
 
 

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.

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.

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 :