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 :

les bibliothéques de C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut les bibliothéques de C++
    svp à quoi sert le C mentionné dans #include<cstdlib> pour le C++ ?

  2. #2
    Membre actif Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Points : 281
    Points
    281
    Par défaut
    Tu veux dire pourquoi cstdlib et pas stdlib ?

    Simple, il s'agit d'une bibliothèque héritée du C. En C on fait #include <stdlib.h>, en C++ on peut faire la même, ou bien #include <cstdlib>

    De la même façon, le C dispose de #include <string.h>. En C++, on peut faire le même, ou #include <cstring>.
    Faire #include <string> n'inclut pas les fonctions C de gestion de chaine de caractère, mais la classe C++ std::string qui comprend les mêmes fonctionnalités, et d'autres, sous la forme d'un objet chaine de caractère

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Points : 1 086
    Points
    1 086
    Par défaut
    En fait cstdlib n'est qu'un fichier présent sur ton disque, comme l'est stdlib.h.
    Chez moi il se trouve dans C:\MinGW\lib\gcc\mingw32\4.6.1\include\c++.
    A chaque appel de ton compilateur, ce répertoire est donc automatiquement inclus pour te permettre d'utiliser la librairie standard C++.

    En l'ouvrant tu verras qu'il s'agit d'un header C++ banal qui ne fait qu'encapsuler stdlib.h. Le préfixe "c" en plus l'extension en moins sont une simple convention de nommage.

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Citation Envoyé par cob59 Voir le message
    En l'ouvrant tu verras qu'il s'agit d'un header C++ banal qui ne fait qu'encapsuler stdlib.h.
    C'est un peu réducteur. Sur mon système, le fichier en question fait 255 lignes.

    Le minimum syndical exigé des headers « c… » est ici : http://www.cplusplus.com/reference/clibrary/

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Comme C++ hérite de C, le processus de compilation de C++ totalement similaire à celui de C, à savoir qu'il se fait (plus ou moins) en trois temps : préprocessing (durant lequel les directive #include , #define et autres sont exécutée), création d'un fichier de code objet (code binaire "séparé" par fichier d'implémentation) et édition de lien ("mise en commun" de l'ensemble des fichiers objets.

    ( Je simplifie grandement l'explication ici, car il s'agit juste de te faire comprendre le principe )

    Seulement, il y a énormément de pratiques usuelles en C qui sont très fortement peu recommandées en C++, et ce, d'autant plus que certaines fonctionnalités issues de C risquent d'entrer en conflit avec les fonctionnalités similaires de C++.

    Il fallait donc trouver un moyen de faire le distingo bien clair entre les en-tête issues de (comprend : fournies par le standart ) C et les en-tête issues de C++.

    Le problème, c'est que, avant la première standardisation, la notion d'espace de noms n'existait pas, et que tout ce que C++ fournissait se trouvait (dans des fichiers d'en-tête utilisant l'extension... *.h ) dans "l'espace de noms global" (il n'était pas nécessaire de préfixer une classe fournie par le standard par std::, ni d'utiliser la directive using namespace std;)

    Pour ces deux raisons (et peut etre pour d'autres ), le comité de standardisation a décidé de supprimer les extensions du nom des fichiers d'en-tête relatifs à ce que le C++ propose "de base".

    Mais, pour malgré tout être en mesure de faire le distingo entre les fichiers d'en-tete issus de C et ceux issus de C++ (car, la seule présence de l'extension *.h pouvait simplement faire référence à un fichier "pré standard" ) il a été décidé de rajouter une lettre (c) au nom des fichiers d'en-tête prenant en charge les fichiers d'en-têtes issus du 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

Discussions similaires

  1. Les bibliothèques
    Par vincent0 dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 15/08/2006, 16h36
  2. Le type Arbre binaire dans les bibliothèques standards ?
    Par sam69 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 10/05/2006, 13h50
  3. Les Bibliothèques en C++
    Par Psuchoo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 25/10/2005, 14h30
  4. Réponses: 7
    Dernier message: 05/10/2005, 11h29
  5. Les bibliothèques dans l'esprit Open (liens)
    Par shenron666 dans le forum API graphiques
    Réponses: 0
    Dernier message: 07/06/2005, 12h34

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