Während sie für Sie als Dokumentationsform nützlich sein können, ist das System, das Header-Dateien umgibt, außerordentlich ineffizient.
C wurde so entworfen, dass jeder Kompilierungsdurchlauf ein einzelnes Modul erstellt. Jede Quelldatei wird in einem separaten Durchlauf des Compilers kompiliert. Header-Dateien hingegen werden für jede der Quelldateien, die auf sie verweisen, in diesen Kompilierungsschritt eingefügt.
Dies bedeutet, dass Ihre Header-Datei, wenn sie in 300 Quelldateien enthalten ist, während der Erstellung Ihres Programms 300 Mal analysiert und kompiliert wird. Genau das Gleiche mit genau dem gleichen Ergebnis, immer und immer wieder. Dies ist eine enorme Zeitverschwendung und einer der Hauptgründe, warum die Erstellung von C- und C ++ - Programmen so lange dauert.
Alle modernen Sprachen vermeiden absichtlich diese absurde kleine Ineffizienz. Stattdessen werden normalerweise in kompilierten Sprachen die erforderlichen Metadaten in der Build-Ausgabe gespeichert, sodass die kompilierte Datei als eine Art Nachschlagewerk fungiert, das beschreibt, was die kompilierte Datei enthält. Alle Vorteile einer Header-Datei, die automatisch und ohne zusätzlichen Arbeitsaufwand erstellt wird.
Abwechselnd in interpretierten Sprachen bleibt jedes Modul, das geladen wird, im Speicher. Wenn Sie auf eine Bibliothek verweisen oder diese einbeziehen oder eine Bibliothek benötigen, wird der zugehörige Quellcode gelesen und kompiliert, der bis zum Ende des Programms gespeichert bleibt. Wenn Sie es auch an anderer Stelle benötigen, ist keine zusätzliche Arbeit erforderlich, da es bereits geladen wurde.
In beiden Fällen können Sie die in diesem Schritt erstellten Daten mit den Sprachwerkzeugen "durchsuchen". Normalerweise wird die IDE einen Klassenbrowser haben. Und wenn die Sprache eine REPL hat, kann sie häufig auch verwendet werden, um eine Dokumentationszusammenfassung aller geladenen Objekte zu erstellen.