Großartige Ratschläge, welche für das Makefile und andere Tools zu verwenden sind. Die Berücksichtigung von Nicht-Compiler-Tools bei der Entscheidung, welche Erweiterung zu verwenden ist, ist ein großartiger Ansatz, um eine Antwort zu finden, die für Sie funktioniert.
Ich wollte nur das Folgende hinzufügen, um bei einigen .cc
gegen .cpp
Informationen, die ich gefunden habe. Im Folgenden sind die Erweiterungen nach verschiedenen Umgebungen aufgeschlüsselt (aus dem Buch "C++ Primer Plus"):
Unix verwendet: .C
, .cc
, .cxx
, .c
GNU C++ verwendet: .C
, .cc
, .cxx
, .cpp
, .c++
Clang verwendet: .C
, .cc
, .cxx
, .cpp
, .c++
und auch .cppm
für Modulschnittstellen
Digital Mars verwendet: .cpp
, .cxx
Borland C++ verwendet: .cpp
Watcom verwendet: .cpp
Microsoft Visual C++ verwendet: .cpp
, .cxx
, .cc
und auch .ixx
für Modulschnittstellen
Metrowerks CodeWarrior verwendet: .cpp
, .cp
, .cc
, .cxx
, .c++
Die verschiedenen Umgebungen unterstützen unterschiedliche Erweiterungen. Auch ich habe nach einer Antwort auf diese Frage gesucht und diesen Beitrag gefunden. Basierend auf diesem Beitrag denke ich, ich könnte mit gehen .hpp
y .cpp
für eine einfache plattform- und werkzeugübergreifende Erkennung.
145 Stimmen
Schlussfolgerung Das spielt keine Rolle. Mögliche Herkunft cc = C mit Klassen, cpp = C plus plus
11 Stimmen
Das ist wichtig für Clang++. Wenn Sie ihm eine C++-Header-Datei mit einem Namen geben, der auf .h endet, warnt clang++ Sie.
7 Stimmen
Ein weiteres Werkzeug, das sich ein wenig kümmert, ist emacs. Mit einer sauberen .emacs-Konfiguration aktiviert das Öffnen ("Finden" in der emacs-Sprache) einer .h-Datei den c-Modus, nicht den c++-Modus. Natürlich können Sie emacs so konfigurieren, dass er etwas anderes macht (wie alles in emacs), aber ich will damit sagen, dass der c-Modus die Standardeinstellung ist.
9 Stimmen
lint
Sorgen,.C
ist C++ und.c
ist C ohne jegliches Verständnis für.cc
o.cpp
. Zumindest unter AIX 6.1.20 Stimmen
Die Antwort "Das spielt keine Rolle" ist nicht wirklich hilfreich. Die Frage ist durchaus relevant. Der Auftraggeber suchte nach einer soliden Konvention, an die er sich halten kann. Eine bessere Antwort wäre: "Leider gibt es in der C++-Gemeinschaft keine feste Konvention zu diesem Thema". Es ist traurig, wenn man darüber nachdenkt. Alle anderen gängigen Sprachen scheinen eine einzige, eindeutige Dateierweiterung zu haben. Ich würde mich an das halten, was ein wichtiges Projekt verwendet, wie gcc. Sie verwenden
.cc
.4 Stimmen
.cc ist sehr verwirrend, da
cc
ist ein sehr gebräuchlicher Name für dieC
Kompilator.0 Stimmen
Auch .cxx in einigen Implementierungen.
1 Stimmen
Ich mag das Akronym CPP nicht, da es mit dem C-Präprozessor kollidiert.
1 Stimmen
Bjarne Stroustrup, der C++ entwickelt hat, bevorzugt CPP in seinem sehr berühmten Buch: "The C++ Programming Language" ab Seite 67 und so weiter.