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 :

Extensions des librairies


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 28
    Par défaut Extensions des librairies
    Bonjour,

    J'aimerais que l'on m'explique la logique qui se cache derrière les extensions des headers, des fois on a un .h, des fois non....

    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 57
    Par défaut
    Bonsoir!

    A ma connaissance:
    .h ->header en c
    .hh -> header en c++ sans template
    .hpp -> header en c++ avec template
    .c -> source C
    .cpp -> source c++

    .dll -> lib windows

    .so -> lib partage pour linux
    .a -> lib statique pour linux

    Et pour plus de detail Google m'a donne acces a wikipedia ou j'ai trouve caa:
    http://fr.wikipedia.org/wiki/Liste_d...ns_de_fichiers

    Bonne lecture.

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 28
    Par défaut
    Merci, et ceux qui n'ont aucune extension?

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Il n'y a rien d'imposé. C'est juste une convention qui peut être différente d'une entreprise à l'autre (voire d'un projet à l'autre). Bref pas de règle générique.

    Pour les headers, j'ai au moins vu utiliser .h, .hh, .hpp ainsi que .ipp (contenant uniquement des fonctions inlines) et .tpp (définitions de templates). Les headers normalisés pour leur part non pas d'extension du tout.

    De même pour les sources C++, pour lesquelles j'ai déjà j'ai rencontré .C, .cpp et .cxx

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

    Informations professionnelles :
    Activité : aucun

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

    Les fichiers d'en-tête n'ayant pas d'extension sont, par convention, les fichiers d'en-tête de la bibliothèque standard.

    Il n'y a, en effet, aucune règle quant aux extensions à utiliser (ce qui ne veut pas dire qu'il n'y ait pas de conventions, hein ) en C++, alors que C impose l'utilisation de .h (du moins, il me semble).

    Comme il existe de nombreux fichiers dont le nom est sensiblement identique, mais avec un contenu franchement différent (je pense, entre autres, à string(.h) ), il fallait trouver un moyen pour distinguer les fichiers d'en-tête issus de C de ceux issus de C++, et ce, d'autant plus qu'il est plus que probable que les fichiers issus de C soient accessibles au compilateur C++.

    C'est la raison pour laquelle les fichiers de la bibliothèque standard C++ n'ont aucune extension et que certains sont préfixés de la lettre C (tels cstdint, cstdio, cstring et bien d'autres) afin d'indiquer qu'il s'agit de l'équivalent de fichiers issus de C
    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

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Si rien n'impose dans le langage le type d'extension à utiliser, la chaîne de compilation peut elle s'appuyer sur l'extension pour choisir le compilateur à invoquer. '.c' va utiliser préférentiellement le compilateur C, '.cpp', '.cxx', '.C', '.cc' vont utiliser le compilateur C++. Mais là aussi rien d'obligatoire, en général on peut forcer ces comportements par défaut.

    Pour un projet, il peut être intéressant de définir au départ les extensions utilisées et leur objectif et de s'y tenir. La cohérence facilite grandement les maintenances et évolutions des projets.

Discussions similaires

  1. [JAR exécutable] comment y intégrer des librairies ?
    Par sixkiller dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 07/04/2005, 10h03
  2. Réponses: 3
    Dernier message: 25/01/2005, 11h27
  3. [Ant Eclipse] Import des librairies dans un build.xml
    Par Alwin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/11/2004, 16h35
  4. [NETBEANS] Monter des librairies
    Par Yann dans le forum NetBeans
    Réponses: 1
    Dernier message: 02/07/2004, 14h12
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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