Ifndef du debut ... a quoi ca sert ?

Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
- - Dernière réponse : cs_Arkko
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
- 14 juil. 2003 à 20:23
Je regarde plusieurs codes sources et a chaque debut de module je vois:

#ifndef PRINT_H
#define PRINT_H
//le code
#endif

a quoi ca sert de mettre ca !!! merci

@+ Arkko
Afficher la suite 

5 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
0
Merci
Salut,
ca sert definir la constance PRINT_H si elle n'est pas deja definie.
Commenter la réponse de cs_aardman
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
0
Merci
la "constante", je voulais dire.
Commenter la réponse de cs_aardman
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
0
Merci
ok ... mais si on la defini pas ... c'est quoi ca fait de special !!!?? ca change tu quelquechose ... (J'utilise vc++ je c pas si ca peux changer quechose)
Commenter la réponse de cs_Arkko
Messages postés
950
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
0
Merci
La réponse d'aardman est juste mais il ne t'as pas expliqué pourquoi on fait cela. C'est pour éviter que le classe (ou le code) présent dans un fichier header soit redéclarer à chaque inclusion de ce fichier, ce qui provoquerait une erreur du compilateur.
A la première inclusion du fichier, la constante PRINT_H n'est pas encore déclarée, on la déclare donc via le #define ainsi que le code. Aux inclusions suivantes, la constante étant déjà déclarée, il n'y a plus de déclaration du code.

Kaid - kaid.fr.st
Commenter la réponse de cs_Kaid
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
0
Merci
Ah ok .... donc en resume ca evite de traiter le code du module 2 fois .... merci kaid et aardman :)

@+ Arkko
Commenter la réponse de cs_Arkko