15 votes

Quelle est la différence entre les fichiers d'en-tête C (.h) et les fichiers d'en-tête C++ (.hpp) ?

J'ai remarqué que la bibliothèque boost utilise des fichiers d'en-tête de ( .hpp ).
Je suis curieux, car la plupart des fichiers sources que je vois utilisent la méthode normale .h les fichiers d'en-tête.
Existe-t-il des cas particuliers qui justifient l'utilisation de .hpp au lieu de .h ?

Merci

23voto

Otávio Décio Points 44200

Juste une convention, rien de spécial. Vous pouvez utiliser n'importe quelle extension sur les fichiers d'inclusion, en fait.

6voto

Anycorn Points 20521

.hpp, .H, etc. est une convention libre pour les fichiers d'en-tête C++, .tcc est une convention libre pour l'implémentation des templates C++, .h est une convention assez forte pour les fichiers c.

Boost utilise l'extension hpp, QT utilise l'extension .h, STL n'a pas d'extension. Je suis sûr qu'il existe des bibliothèques qui utilisent .H mais je n'en ai pas vu.

2voto

Ninefingers Points 18767

En effet, Otavio a raison.

J'utilise hpp / h pour différencier les deux langages lors de la construction de produits en langage mixte. Par exemple, la définition d'une classe peut être placée dans un fichier .hpp (implémentation dans .cpp), alors qu'un fichier .h ne définira que les fonctions supportées par le C. Pour effectuer cette séparation, il est important de connaître la différence entre les langages - à cette fin, je passe *.c par gcc et *.cpp par g++.

1voto

sud03r Points 6093

Le but de #include "filename" consiste à remplacer la directive du préprocesseur #include avec le contenu de filename .
En fait, n'importe quel nom de fichier ferait l'affaire, mais comme c'est la convention, les fichiers d'inclusion sont ".h" ou ".hpp", l'avantage étant la coloration syntaxique dans l'éditeur de votre choix (vim dans mon cas).

0voto

Victor Zamanian Points 1851

J'ai entendu dire qu'il est également assez courant pour les programmeurs UNIX et Linux d'utiliser .hh et .cc par opposition à .cpp et .h. Personnellement, j'aime nommer mes fichiers d'en-tête .hh car cela aide emacs à distinguer la coloration syntaxique C et C++. J'utilise également l'extension .cc parce qu'elle fait bon effet avec .hh et qu'elle est plus courte que .cpp. Et je fais généralement mon codage dans et pour les environnements Linux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X