#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
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
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
#ifdef....#endif permet de tester la définition d'un parametre du programme, du système ou autre, pas des variables
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
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;"
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;"
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
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.
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.
6 mars 2009 à 10:43
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 ?
6 mars 2009 à 11:13
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 .