757 Stimmen

C++ Code Dateierweiterung? Was ist der Unterschied zwischen .cc und .cpp

Ich habe C++-Code gesehen, der sowohl als .cc et .cpp Dateien. Gibt es einen Unterschied zwischen diesen beiden?

があります。 Google Style Guide scheint darauf hinzudeuten .cc , liefert aber keine Erklärung.

Ich beschäftige mich hauptsächlich mit Programmen auf Linux-Systemen.

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.

903voto

JaredPar Punkte 699699

Letztendlich spielt das keine Rolle, da C++-Compiler mit den Dateien in beiden Formaten umgehen können. Wenn es in Ihrem Team ein echtes Problem ist, werfen Sie eine Münze und machen Sie mit der eigentlichen Arbeit weiter.

375voto

Clifford Punkte 82130

GNU GCC erkennt alle der folgenden Dateien als C++-Dateien und verwendet die C++-Kompilierung, unabhängig davon, ob Sie sie über gcc oder g++ aufrufen: .C , .cc , .cpp , .CPP , .c++ , .cp , oder .cxx .

Beachten Sie die .C - Fallangelegenheiten im GCC, .c eine C-Datei ist, während .C ist eine C++-Datei (wenn Sie den Compiler entscheiden lassen, was er kompilieren soll).

GCC unterstützt auch andere Suffixe, um eine besondere Behandlung anzuzeigen, zum Beispiel ein .ii Datei wird als C++ kompiliert, aber nicht vorverarbeitet (vorgesehen für separat vorverarbeiteten Code). Alle anerkannten Suffixe finden Sie unter gcc.gnu.org

333voto

John S. Punkte 1847

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.

92voto

Ryu Punkte 8493

.cpp ist die empfohlene Erweiterung für C++, soweit ich weiß. Einige Leute empfehlen sogar die Verwendung von .hpp für C++-Header, nur um sich von C zu unterscheiden.

Obwohl es dem Compiler egal ist, was Sie tun, ist es eine persönliche Vorliebe.

44voto

NewbiZ Punkte 2308

Ich persönlich benutze .cc Erweiterung für Implementierungsdateien, .hh für Kopfzeilen, und .inl für inline/templates.

Wie gesagt, das ist vor allem eine Frage des Geschmacks.

Nach dem, was ich gesehen habe , .cc scheint mehr zu sein " an Open-Source-Projekten orientiert ", wie es in einigen großen Open-Source-Software-Codierungsstilen empfohlen wird, während . cpp scheint eher Windowish zu sein.

--- EDIT

Wie bereits erwähnt, ist dies "von dem, was ich gesehen habe" kann es falsch sein. Es ist nur so, dass alle Windows-Projekte, an denen ich gearbeitet habe, die .cpp und viele Open-Source-Projekte (die hauptsächlich auf Unix basieren) verwenden .cc .

Beispiele für Kodierungsstile mit .cc :

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X