Ist das Platzieren von C-Definitionen in Header-Dateien die universelle Norm?
Der eigene Programmierstil schreibt vor, dass Klassendeklarationen in Include-Dateien gespeichert werden, während Definitionen befinden sich in separaten .cpp-Dateien. Dieser Ansatz steht im Einklang mit dem Prinzip, das in der weithin beachteten Antwort von Loki im Artikel „C Header Files, Code Separation“ dargelegt wird.
Ein Kollege besteht jedoch darauf, dass C-Deklarationen im Allgemeinen Definitionen innerhalb derselben Header-Datei umfassen sollten. Er behauptet, dass dies eine allgemein akzeptierte moderne Praxis ist.
Überprüfung der Verbreitung dieser Praxis
Um die Gültigkeit dieser Behauptung festzustellen, untersuchen wir die gängigen Praktiken, die in beobachtet werden der Branche.
Antwort
Ihre Die Behauptung des Kollegen ist falsch. Die weit verbreitete Praxis war und ist es, Code in .cpp-Dateien (oder anderen vorgesehenen Erweiterungen) und Deklarationen in Headern aufzubewahren.
Die Platzierung von Code in Headern bietet zwar gelegentlich Vorteile, wie z. B. verbessertes Compiler-Inlining , es kann auch zu längeren Kompilierungszeiten führen, da der Code beim Einbinden wiederholt verarbeitet wird. Darüber hinaus kann es zu Komplexitäten bei zirkulären Objektbeziehungen kommen, wenn Code in Headern enthalten ist.
Zusammenfassend lässt sich sagen, dass die vorherrschende Praxis der Trennung von Code und Deklarationen entgegen der Behauptung Ihres Kollegen Ihrer Präferenz entspricht.
Ausnahmen und Klarstellungen
Eine bemerkenswerte Ausnahme ergibt sich bei Vorlagen. Moderne Bibliotheken wie Boost nutzen häufig Vorlagen und verfolgen häufig einen „nur Header“-Ansatz. Dies ist jedoch ein einzigartiges Szenario, das speziell auf Vorlagen anwendbar ist.
Nachteile von Nur-Header-Code
Es ist wichtig, die Nachteile des Schreibens von Nur-Header-Code zu berücksichtigen:
Fazit
Die Die traditionelle Praxis der Trennung von Deklarationen und Definitionen bleibt in C der vorherrschende Ansatz. Auch wenn es bestimmte Szenarien gibt, in denen reiner Header-Code von Vorteil sein kann, ist es wichtig, seine Einschränkungen zu verstehen und ihn mit Bedacht einzusetzen. Die behauptete universelle Übernahme von reinen Header-Definitionen ist unbegründet und es ist ratsam, die bewährte Praxis der Trennung von Code und Deklarationen beizubehalten.
Das obige ist der detaillierte Inhalt vonIst das Einfügen von C-Definitionen in Header-Dateien wirklich die universelle Norm?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!