#ifdef, #ifndef, #endif |
#ifdef, #ifndef, #endif
Il est possible de réaliser des conditions en langage préprocesseur !
Les directives que j'ai mises en titre servent à vérifier si une constante de préprocesseur est définie.
Mais comment la définir ? C'est tout simple, il suffit de faire :
#define WINDOWS
Je ne mets pas de valeur, elle est définie, le préprocesseur la connaît donc c'est bon.
On aurait pu mettre une valeur mais ça nous sert à rien ici donc autant ne pas se fatiguer .
La compilation conditionnelle
Grâce à ces directives, on peut effectuer une compilation conditionnelle.
Par exemple vous avez créé un programme en C pour 3 OS (Windows, Mac et Linux), vous avez donc 3 codes sources différents dans un seul fichier, bien regardez l'exemple qui suit :
#define WINDOWS |
C'est comme ça que font les programmes multiplateformes pour s'adapter à l'OS (système d'exploitation).
Évidemment, il faudra compiler 3 fois le projet en changeant la constante définie.
Les inclusions infinies
Pour clore se chapitre et boucler le programme Calculatrice il faut que je vous parle des inclusions infinies !
Imaginez 2 headers, A.h et B.h. A.h inclut B.h et B.h inclut A.h :
Pas besoin d'être le premier de la classe pour comprendre qu'on a affaire à des inclusions infinies !
Tous vos headers doivent être protégés des inclusions infinies !
Notez que même stdio.h ou stdlib.h sont protégés !
Revenons à notre TP et corrigeons-le :
#ifndef HEADER_CALC |
Si vous réfléchissez bien, les inclusions infinies sont évitées grâce à ces directives !
Voilà, le programme est complètement terminé !
Il est aux normes, vous pouvez le vendre et devenir riche !
Créé avec HelpNDoc Personal Edition: Comment protéger vos PDF avec le cryptage et les mots de passe