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 :

signification de #ifndef


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 117
    Par défaut signification de #ifndef
    salut à tous
    je voudrais savoir à quoi servent ces deux lignes écrites en début d'un .cpp :
    #ifndef _nomDeLaClasse_HPP_
    #define _nomDeLaClasse_HPP_

    Merci bp et très bonne journée

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    #ifndef vient forcément associé avec un #endif.

    L'intérêt est d'inclure une partie de code, uniquement une fois.

    Au premier passage, le ifndef ( if not defined ) return true, donc on rentre dans la portion de code. La première ligne définie la variable testée, donc au prochain passage, le ifndef returnera false, et le code ne sera plus incluS.

    A+

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Tout simplement IF Not DEFined (si ce n'est pas défini)

    Il créera un bloc "indivisible" allant jusqu'au #endif qui lui correspond

    C'est, tout simplement, une structure de controle qui dira
    Si _nomDeLaClasse_HPP_ n'est pas défini
    tu défini _nomDeLaClasse_HPP_
    (tout le code de la définition de ta classe)
    #endif (et on s'arrete ici)

    Le but est d'éviter que l'on essaye de définir quelque chose qui est déjà défini...

    Les instructions qui commencent par un # (#ifdef, #ifndef, #endif, #include, #define...)sont des instructions "préprocesseur".

    Il s'agit de "macro" qui permettront au préprocesseur de travailler selon ce qu'il a déjà rencontré lorsqu'il parcoure un fichier...
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    En général, on trouve ça dans un fichier .h (ou .hpp) mais pas un .cpp

    Ce sont des instructions pour le préprocesseur qui évitent d'inclure plusieurs fois le même fichier .h

    #ifndef _nomDeLaClasse_HPP_ => Si la variable préprocesseur _nomDeLaClasse_HPP_ n'est pas définie
    #define _nomDeLaClasse_HPP_ => Alors on la définit...

    Et à la fin de ton .h, tu dois avoir #endif => C'est la fin de la condition...

Discussions similaires

  1. [Mots cles]Signification de transient et volatile
    Par Pill_S dans le forum Langage
    Réponses: 2
    Dernier message: 14/07/2004, 11h58
  2. Réponses: 4
    Dernier message: 22/01/2004, 08h27
  3. Recherche la signification d'expressions en C
    Par sbadecoder dans le forum C
    Réponses: 16
    Dernier message: 20/08/2003, 07h35
  4. Pourquoi ces directives #ifndef ... en haut des .h
    Par Patrick PETIT dans le forum C
    Réponses: 8
    Dernier message: 06/03/2003, 23h53
  5. i386, x86 signification ?
    Par Thcan dans le forum Assembleur
    Réponses: 7
    Dernier message: 04/01/2003, 21h36

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