2010-02-11 14 views

Antwort

18

Nur Konvention, nichts Besonderes Verwendung von .hpp rechtfertigen. Sie können tatsächlich jede Erweiterung in Include-Dateien verwenden.

1

Tatsächlich hat Otavio Recht.

Ich verwende hpp/h, um beim Erstellen gemischtsprachiger Produkte zwischen den beiden Sprachen zu unterscheiden. Zum Beispiel könnte eine Klassendefinition in eine .hpp (Implementierung in .cpp) gehen, während eine .h-Datei nur Funktionen definieren würde, die von C unterstützt werden. Für diese Trennung ist es wichtig, den Unterschied zwischen den Sprachen zu kennen - zu diesem Zweck Ich gebe * .c durch gcc und * .cpp durch g ++.

4

.hpp, .H, etc. ist eine lose Konvention für C++ - Header-Dateien, .tcc ist eine lose Konvention für die C++ - Template-Implementierung, .h ist eine ziemlich starke Konvention für c-Dateien.

Boost verwendet die Erweiterung hpp, QT verwendet die Erweiterung .h, STL hat keine Erweiterung. Ich bin mir sicher, dass es Bibliotheken gibt, die .H verwenden, aber noch keine gesehen haben.

+0

Ich glaube nicht, dass Qt überhaupt eine Erweiterung verwendet. – Veeti

+2

QT 3 verwendet weitgehend die Erweiterung .h, aber Qt 4 scheint auf keine Erweiterung zu migrieren, da die meisten Header auch .h Gegenstücke haben. – greyfade

1

Der Zweck von #include "filename" Präprozessordirektive ist, die #include Zeile durch den Inhalt von filename zu ersetzen.
Also infact jeder Name für die Datei würde tun, aber wie es zufällig die Konvention die Include-Dateien sind ".h" oder ".hpp", Ein Vorteil ist die Syntax-Highlighting in Editor Ihrer Wahl (vim in meinem Fall).

0

Ich höre, es ist auch etwas üblich für UNIX-und Linux-Programmierer, .hh und .cc im Gegensatz zu .cpp und .h zu verwenden. Persönlich nenne ich meine Header-Dateien .hh, weil es Emacs dabei hilft, zwischen C- und C++ - Syntax-Highlighting zu unterscheiden. Ich benutze auch die Erweiterung .cc, weil es gut zusammen mit .hh aussieht, und es ist kürzer als .cpp. Und ich mache normalerweise meine Programmierung in und für Linux-Umgebungen.

0

Sie sagen dem Compiler nur, dass er die angegebene Datei während des Kompilierens in Ihren Code aufnehmen soll. Es ist also egal, welche Erweiterung die Datei hat. Aber vorzugsweise sollte es eine Textdatei sein.

Verwandte Themen