Ifndef du debut ... a quoi ca sert ?

Signaler
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
-
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
-
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
A voir également:

5 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
ca sert definir la constance PRINT_H si elle n'est pas deja definie.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
la "constante", je voulais dire.
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

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)
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

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
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007

Ah ok .... donc en resume ca evite de traiter le code du module 2 fois .... merci kaid et aardman :)

@+ Arkko