768 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.

151 Stimmen

Schlussfolgerung Das spielt keine Rolle. Mögliche Herkunft cc = C mit Klassen, cpp = C plus plus

12 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.

8 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.

11voto

Kyle Punkte 1

Die .cc-Erweiterung ist notwendig, um implizite Regeln in makefiles zu verwenden. Schauen Sie sich diese Links an, um ein besseres Verständnis von Makefiles zu bekommen, aber schauen Sie sich vor allem den zweiten an, da er die Nützlichkeit der .cc-Erweiterung deutlich macht:

ftp://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html

https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html

Ich habe erst jetzt davon erfahren.

10voto

Alan Punkte 4819

Wie bei den meisten Stilkonventionen gibt es nur zwei Dinge, die wichtig sind:

  1. Seien Sie konsequent in dem, was Sie verwenden, wo immer es möglich ist.
  2. Entwerfen Sie nichts, was von einer bestimmten Wahl abhängt, die verwendet wird.

Sie mögen widersprüchlich erscheinen, aber sie sind jeweils aus eigenen Gründen wertvoll.

8voto

TCS Punkte 5490

Wie schon andere vor mir geschrieben haben, kommt es am Ende darauf an, was Ihr Projekt/Team/Unternehmen nutzt.

Persönlich verwende ich nicht cc Erweiterung, ich versuche, die Zahl der Erweiterungen zu verringern und nicht zu erhöhen, es sei denn, es gibt einen klaren Wert (meiner Meinung nach).

Was auch immer es wert ist, dies ist, was Ich benutze :

c - Nur reiner C-Code, keine Klassen oder Structs mit Methoden.

cpp - C++-Code

hpp - Nur Kopfzeilen-Code. Implementierungen befinden sich in den Headern (wie Template-Klassen)

h - Header-Dateien sowohl für C/C++. Ich stimme zu, dass eine weitere Unterscheidung gemacht werden kann, aber wie ich schon schrieb, versuche ich der Einfachheit halber, die Anzahl der Erweiterungen zu verringern. Zumindest bei den C++-Projekten, an denen ich gearbeitet habe, h Dateien für Pure-C sind seltener, deshalb wollte ich keine weitere Erweiterung hinzufügen.

8voto

KeithB Punkte 15939

Ich habe .C und .h für den Quelltext bzw. den Header verwendet. Eine nette Sache bei dieser Wahl ist, dass sie auf der Kommandozeile einfach zu benutzen ist *.[Ch] um alle Codedateien auszuwählen. verwenden .C könnte auf Dateisystemen, die Groß- und Kleinschreibung nicht berücksichtigen, ein Problem darstellen, aber wenn Sie foo.c y foo.C im gleichen Verzeichnis, du verdienst sowieso, was du bekommst :)

8voto

.C y .cc scheinen bei den (wenigen) Unix-orientierten C++-Programmen, die ich gesehen habe, Standard zu sein. Ich habe immer verwendet .cpp Ich selbst arbeite eigentlich nur mit Windows, und das ist dort schon seit Ewigkeiten der Standard.

Ich empfehle .cpp persönlich, weil... es für "C Plus Plus" steht. Es ist natürlich von entscheidender Bedeutung, dass Dateierweiterungen Akronyme sind, aber sollte sich diese Begründung als nicht überzeugend genug erweisen, sind andere wichtige Dinge wie die Nichtverwendung der Umschalttaste (was die Verwendung von .C y .c++ ) und die Vermeidung von Metazeichen für reguläre Ausdrücke, wo immer dies möglich ist (was den Einsatz von .c++ -- leider kann man das nicht wirklich vermeiden . Natürlich.).

Dies schließt nicht aus, dass .cc Obwohl es also nicht wirklich für etwas steht (oder doch?), ist es wahrscheinlich eine gute Wahl für Linux-orientierten Code.

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