#ifdef ?????

Fermé
kite - 6 mars 2009 à 10:35
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 6 mars 2009 à 14:47
Bonjour,
j trouver dans un algorithme programmer avec C++ l'utilisation de la boucle "if" comme suit :
#ifdef
.......
#endif
et d'apres mes connaissance une boucle "if" c'ecrit comme suit :
if
.....
endif ;

Donc j n comprend pas la difference et l'utiliter de l'utilisation de #ifdef .
si quelqu'un peut m'aider par une explication ?
merci .

3 réponses

Salut,

#ifdef....#endif permet de tester la définition d'un parametre du programme, du système ou autre, pas des variables
1
salut,
merci pour votre reponse , c.à.d qu'il faut que j défini le parametre tout d'abord puis j réalise ma boucle conditionnel avec "if" ? comme suit : #define "parametre " puis #ifdef "parametre .......#endif ?
0
salut ,
j suis de retour , j réaliser une petit recherche a partir de la reponse de la reponse de francis et j trouver une bonne définition dans c lien : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15954-le-preprocesseur#ss_part_2 .
merci encore pour votre aide Francis .
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 mars 2009 à 11:14
Salut.
Bon, pour être clair :
Toute ligne commençant par # est en fait une instruction de préprocesseur, rien à voir avec le langage.
Le préprocesseur est vraiment un programme à part, il ne fait ni du C, ni du C++ ni du Fortran etc. il ne traite que des fichiers texte.
Le préprocesseur prend le fichier source et le reconditionne en fonction des directives qui lui sont donné (#if etc.) pour formé un autre fichier source qui sera lui compiler par le compilateur C/C++.
Les instructions #if etc. ne devrais être utiliser que pour faire de la compilation conditionnel, c'est à dire en fonction des bibliothèque installées ou du compilateur ou de l'OS, il ne devrais pas intervenir dans le corps du programme.

Dit d'une autre manière, la valeur du #if est déjà connu à la fin de la compilation.

Pour finir tes connaissance sont fausses, en C/C++, une boucle if s'écrit ainsi :
if(bool) {...}
pas de "endif;"
1
salut ,
c qui concerne ta remarque pour la boucle if est vrais , j confondu celui ci avec la language VHDL , pa de probléme , mais j comrend pas tout ligne commençant par # est une instruction de préprocesseur , est c q tu peut etre plus claire ?
merci pour votre repense
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 mars 2009 à 14:47
En lisant la suite de mon message tu aurait du comprendre.
Il faut bien voir que la compilation C/C++ se passe en plusieurs étapes successives. La première est celle du préprocesseur.
Rien à voir avec le processeur physique (AMD ou INTEL) de l'ordinateur :-)
Et comme je te disais, ces instructions, cette étape de la compilation sert à formatter le code source.
1