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 :

Différence entre #include <> et #include " "


Sujet :

C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par défaut Différence entre #include <> et #include " "
    Bonjour.

    Question que je me suis toujours posé :
    Quelle est la différence entre #include <> (par exemple #include <iostream>) et #include " " (par exemple #include "monfichier.h").

    Bref, que signifient exactement les crochets et les guillemets dans ce contexte et quand doit-on mettre les uns plutôt que les autres ? (lors de l'inclusion de fichiers d'une bibliothèque par exemple).

    Merci beaucoup

  2. #2
    Membre expérimenté Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Par défaut
    En fait, les chevrons indiquent qu'il faut chercher dans le dossier /include que le compilateur saura trouver tout seul. Les guillemets, c'est pour tes fichiers d'entête perso relatifs à ton projet. Souvent, il seront placés dans ton répertoire de travail (soit par l'IDE, soit par le programmeur lui-même), donc si on admet que le code ci-dessous soit dans un repértoire a, alors le fichier mes_prototypes.h y est aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <iostream>
    #include "mes_prototypes.h"
     
    /* code */
    Mais on peut bien-sûr spécifier un sous-repértoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <iostream>
    #include "./dossier/mes_prototypes.h"
     
    /* code */
    Souvent, les fichiers d'entête des bibliothèques sont à mettre entre chevrons car ils se trouvent dans le dossier /include du compilateur (bien-sûr, il y a des exceptions à tout)

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Par défaut
    Bonsoir,

    La différence entre les deux varie sur le compilateur que tu utilise, cependant la règle de base est que la première version, entre "<"et ">",la recherche du compilateur pour nom de fichier s'effectue dans une série de trajectoires prédéfinies. C'est la norme à utiliser le # include <nomfichier> quand les fichiers en-tête font partie de la bibliothèque C + + standard, tels que iostream etc...
    La deuxième forme d'inclure un fichier en-tête est destiné principalement aux fichiers en-tête qui se trouvent dans la même voie que l'application C + + lui-même.

    Si parexemple en c++ tu as déclaré ta classe (ce qui se fait dans un fichier.h) et que tu dois faire la définition de ta classe dans un fichier.cpp, il te faut inclure dans se fichier.cpp ton fichier.h de la sort :
    sachant que ton fichier.h et fichier.cpp se trouve dans le même dossier.

    Et maintenant dans ton code tu as besoin d'utiliser des cout et des cin..., il te faut inclure dans ce cas
    avec les "< >" car là tu utilises un fichier en-tête qui fait partie de la bibliothéque C++. Et il ne se trouve pas dans le même dossier que ton application.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  4. #4
    Membre expérimenté
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par défaut
    http://www.bourguet.org/v2/clang/include
    devrait répondre à ta question.

Discussions similaires

  1. LinqToEntities: Différence entre .Include(), .Join(), .Load()
    Par takinelinfo dans le forum Accès aux données
    Réponses: 2
    Dernier message: 28/07/2011, 09h43
  2. Différence entre include_once et include
    Par Jcpan dans le forum Langage
    Réponses: 3
    Dernier message: 05/03/2009, 12h43
  3. Réponses: 4
    Dernier message: 10/11/2008, 11h13
  4. Réponses: 9
    Dernier message: 04/10/2007, 10h04

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