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

MFC Discussion :

#pragma once


Sujet :

MFC

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut #pragma once
    Bonjour à tous,

    quand on crée une nouvelle classe automatiquement (quand c'est visual qui crée lui-même les fichiers .h et .cpp correspondant), le .h commence systématiquement par #pragma once. Je me demandais tout simplement: "que signifie cette ligne et à quoi sert-elle?"

    P.S: j'ai cherché un peu partout, mais je n'ai pas réussi à trouver une explication suffisemment claire pour que je puisse la comprendre...

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_predir_once.asp
    cet article est pas mal aussi :
    http://gamearchitect.net/Articles/ExperimentsWithIncludes.html

  3. #3
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    ça permet de ne pas inclure deux fois le même fichier ".h", et c'est propre au compilateur visual, c'est l'équivalant du fameux garde-fou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     #if !defined qqechose
    define qqechose
    ...
    ...
     
    #endif

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    aok



    J'ai bien fait de poser la question: jusqu'ici, j'utilisais les deux (#ifndef machin+pragama once )

  5. #5
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    laisse les deux, comme ça tu auras une compatibilité entre les compilateurs...

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par http://gamearchitect.net/Articles/ExperimentsWithIncludes.html
    My timings were as follows:
    Nothing - 28 seconds
    #pragma once - 17 seconds
    Redundant include guards - < 1 second
    Ce qui signifie que le Redundant include guard (#ifndef machin, etc.) permet un compilation plus de 17 fois supérieur que l'utilisation du "#pragma once" oO! :

    Citation Envoyé par blackhorus
    laisse les deux, comme ça tu auras une compatibilité entre les compilateurs..."
    C'est un bon conseil, merci. Cependant, mon appli est 100% MFC, uniquement destinée à être utilisée pour visual7... je n'ai donc pas à me soucier de compatibilité, portabilité, etc...

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

Discussions similaires

  1. A propos de #pragma once...
    Par Selenite dans le forum C++
    Réponses: 6
    Dernier message: 03/04/2008, 12h38
  2. [Débutant] #pragma once
    Par hat54 dans le forum C++
    Réponses: 5
    Dernier message: 13/01/2006, 15h31
  3. Question sur #pragma data_seg...
    Par liv dans le forum MFC
    Réponses: 24
    Dernier message: 11/04/2005, 17h14
  4. Pragma lib où le mettre ?
    Par Sephi dans le forum MFC
    Réponses: 2
    Dernier message: 17/02/2004, 00h50
  5. #error ,#pragma
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 01/11/2003, 01h05

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