Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2754 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Interet des fichiers .h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interet des fichiers .h

n°1323129
Profil sup​primé
Posté le 10-03-2006 à 22:49:08  answer
 

Au début quand j'ai commencé a programmé je pensai qu'on devait obligatoirement déclaré les prototypes et les variables dans les fichiers d'en-tete(*.h), mais je me suis rendu compte que peut importe si les fichiers étaient .h ou .cpp ca ne change rien je peux meme mettre tout mon programme dans un fichier d'en-tete. Je voudrai savoir si c'est juste une convention pour rendre les programmes plus lisibles ou si c'est vraimment une restriction.
Merci.

mood
Publicité
Posté le 10-03-2006 à 22:49:08  profilanswer
 

n°1323132
nargy
Posté le 10-03-2006 à 22:51:28  profilanswer
 

A la base, ce n est qu une convention. Pourtant de nombreux programmes annexes utilisent l extension, comme par exemple les générateurs de docs ou de makefiles.

n°1323134
skelter
Posté le 10-03-2006 à 22:53:27  profilanswer
 

renseigne toi sur le pre-processeur C et comment on créer un module de compilation (bibliothèque par exemple)

n°1323148
Profil sup​primé
Posté le 10-03-2006 à 23:31:20  answer
 

Merci.

n°1325984
darkange69
Posté le 15-03-2006 à 16:29:44  profilanswer
 

Il a plein de bonne raison d'utiliser les .h.
1: propreté/maintenance du code
2: optimisation (en génral on met les inline dans le .h)
3: permet de centraliser les variables et les defines

n°1325991
slash33
Posté le 15-03-2006 à 16:41:16  profilanswer
 

Comment faîtes vous pour employer une librairie sans .h ??

n°1326134
nargy
Posté le 15-03-2006 à 19:29:14  profilanswer
 

En utilisant un .cpp pour l interface, et des .H pour le code!
Ça fonctionne avec les compilateurs mais pas forcément avec les environnements de développement.

n°1326149
skelter
Posté le 15-03-2006 à 19:57:59  profilanswer
 

ou un .hpp vu qu'on est en c++, des fois :D
ci sa fonctionne pas avec des ide c'est parce que c'est eux qui génèrent les commandes et ils font des supposition sur la nature du fichier à partir de son extension pour avoir un certain niveau d'automatisme
 
le compilateur en lui meme ne sais pas ce qu'est un en-tete et il ne comprend pas les directives du cpp, tout ca se fait avant la compilation et les en-tetes permettent (entre autre) de diviser ce qui sera le code d'une unité de compilation en plusieurs fichiers. Le but principal est de séparés les déclarations et les définitions, les fichiers contenant que des déclaration pourront faire partie (etres inclus) dans d'autre unité de compilation du projet alors que les fichiers contenant les définitions seront compilés une fois pour toute.

n°1326194
++fab
victime du syndrome IH
Posté le 15-03-2006 à 20:48:10  profilanswer
 

skelter a écrit :

ou un .hpp vu qu'on est en c++, des fois :D


.hh, .HH, .hxx, etc.
 

Citation :

e compilateur en lui meme ne sais pas ce qu'est un en-tete et il ne comprend pas les directives du cpp, tout ca se fait avant la compilation et les en-tetes permettent (entre autre) de diviser ce qui sera le code d'une unité de compilation en plusieurs fichiers.


Mais comme généralement, on invoque le cpp en meme temps que le compilateur, ...
 

Citation :

Le but principal est de séparés les déclarations et les définitions, les fichiers contenant que des déclaration pourront faire partie (etres inclus) dans d'autre unité de compilation du projet alors que les fichiers contenant les définitions seront compilés une fois pour toute.


Autre point de vue : les headers, c'est pour respecter l'ODR (One Definition Rule). Pour garantir que les déclarations d'une fonction ordinaire (par exemple) ne soit pas différentes dans toutes les TU, on utilise des headers que l'on incluent. La conséquence est que cela sépare -- dans certains cas -- l'interface de l'implémentation.

n°1326204
nargy
Posté le 15-03-2006 à 21:09:24  profilanswer
 

Tout fichier .h doit commencer par quelquechose comme:
 
#ifndef CeFichierEstInclu
#define CeFichierEstInclu
 
et finir par:
 
#endif
 
Pour ne l inclure qu une seule fois. Sinon il peut être inclu plusieurs fois via d autres fichiers inclus.
 
Ce n est pas le cas des fichier .cpp, puisqu ils ne sont jamais inclus.
 
Encore une différence qui est utilisée pas les IDE: ils ajoutent ces lignes automatiquement à la création de nouveaux fichiers .h (souvent ils définissent NOMDUFICHIER_H).

mood
Publicité
Posté le 15-03-2006 à 21:09:24  profilanswer
 

n°1326617
Profil sup​primé
Posté le 16-03-2006 à 12:55:53  answer
 

Avec moi il n y a pas de difference si je met .h et .hpp meme quand je met du code en c++.


Message édité par Profil supprimé le 16-03-2006 à 12:56:27

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Interet des fichiers .h

 

Sujets relatifs
Programme de récupération de fichiers éffacésExplorateur de fichiers en java
[.bat] Lister les 4 derniers fichiersFusionner des fichiers XML
Suppression de fichiers en fonction d'une date.InnoSetup, fichiers avec accents français et windows chinois
Upload: interdire certains types de fichiers [RESOLU]comparer des fichiers XML
"empiler" plusieurs fichiers en 1[Excel] Fusionner deux fichiers
Plus de sujets relatifs à : Interet des fichiers .h


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR