IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

directive preprocess ifndef


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 72
    Par défaut directive preprocess ifndef
    Bonjour,

    Si j'ai bien compris, les 2 directives suivantes vont inclure le fichier "cdSm.h" s'il n'est pas déjà inclus. C'est bien çà ?
    Mais mon prob c'est que, j'ai trouvé ces 2 lignes de code dans le fichier "cdSm.h" lui même, alors je comprends pas trop l'intérêt.

    Merci


    #ifndef CDSM_H_
    #define CDSM_H_

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Si j'ai bien compris, les 2 directives suivantes vont inclure le fichier "cdSm.h" s'il n'est pas déjà inclus. C'est bien çà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifndef CDSM_H_
    #define CDSM_H_ 
     
    // declaration de variables
    ...
     
    //declaration de fonctions
    ...
     
    #endif
    Ci-dessus, c'est une protection contre l'inclusion multiple.

    Pour inclure un fichier d'entête, on utlise la directive pré-processeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "tonfichier.h"

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par hynposat7 Voir le message
    Bonjour,

    Si j'ai bien compris, les 2 directives suivantes vont inclure le fichier "cdSm.h" s'il n'est pas déjà inclus. C'est bien çà ?
    Mais mon prob c'est que, j'ai trouvé ces 2 lignes de code dans le fichier "cdSm.h" lui même, alors je comprends pas trop l'intérêt.

    Merci


    #ifndef CDSM_H_
    #define CDSM_H_

    Non, le but de ces directives est d'empêcher les inclusions multiples du fichier cdSm.h
    A la première inclusion de cdSm.h, CDSM_H_ n'est pas défini, alors ce qui se trouve entre #ifndef CDSM_H_ et #endif est lu. La ligne qui suit défini CDSM_H_ .
    Lors d'une tentative ultérieure d'inclusion de cdSm.h, CDSM_H_ sera déjà défini et tout ce qui se trouve entre #ifndef CDSM_H_ et #endif sera sauté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. invalid preprocessing directive #"41 "
    Par o_Nejma dans le forum Débuter
    Réponses: 4
    Dernier message: 19/02/2014, 20h10
  2. Pourquoi ces directives #ifndef ... en haut des .h
    Par Patrick PETIT dans le forum C
    Réponses: 8
    Dernier message: 06/03/2003, 23h53
  3. Direct Graphics
    Par Blustuff dans le forum DirectX
    Réponses: 9
    Dernier message: 28/10/2002, 04h19
  4. Hors série PCTEAM sur Direct 3D
    Par Shakram dans le forum DirectX
    Réponses: 1
    Dernier message: 12/10/2002, 16h34
  5. La communauté Direct X est au repos?
    Par Shakram dans le forum DirectX
    Réponses: 21
    Dernier message: 18/07/2002, 23h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo