« Programmation C++/Le préprocesseur » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 21 :
La variable de compilation <code>PLATEFORME_INTEL</code> est ici définie. Combiné à <code>#ifdef</code>, on pourra compiler ou non certaines parties du code à certains endroits du programme.
 
===#ifdef, #ifndef, #if, #endif et #else===
====Présentation====
Toutes ces directives permettent la compilation conditionnelle.
Ligne 28 :
* La directive <code>#ifdef</code> permet de compiler toute une série de lignes du programme si une variable de compilation a précédemment été définie (par la directive <code>#define</code>). La directive <code>#endif</code> indique la fin de la partie de code conditonelle. La partie du programme compilée sera toute la partie comprise entre le <code>#ifdef</code> et le prochain <code>#endif</code>.
 
* La directive <code>#ifndef</code> permet de compiler un bout de programme si une variable de compilation n'est '''pas''' définie. C'est donc l'inverse de <code>#ifdef</code>. La fin de la partie à inclure est déterminée également par <code>#endif</code>.
 
* La directive <code>#if</code> permet de tester qu'une expression est vraie. Cette expression ne peut utiliser que des constantes (éventuellement définies par une directive <code>#define</code>), et la fonction <code>defined</code> permettant de tester si une variable de compilation existe.
 
* Chacune de ces conditions peut être accompagné d'une directive <code>#else</code> qui permet d'inclure un bout de programme si la condition n'est pas vérifiée.
Ligne 57 ⟶ 59 :
 
=====Exemple 2=====
// Définir la taille d'un tableau contenant le prix :
// - de 5 variétés d'orange
#define N_ORANGES 5
// - de 3 variétés de pommes
#define N_POMMES 3
#define N_TOTAL_FRUITS N_ORANGES+N_POMMES
double prix_fruits[N_TOTAL_FRUITS];
#if N_TOTAL_FRUITS > 7
// ... plus de 7 variétés de fruits
#else
// ... moins de 7 variétés de fruits
#endif
 
=====Exemple 3=====
'''Fichier toto.h'''<br/>