C: Warum enthalten wir Header-Dateien, die deklarieren, aber nicht definieren?

uf einem hohen Niveau, ich verstehe, wir verwenden#include -Anweisungen, um Code aus anderen Dateien für die aktuelle Datei verfügbar zu machen. Aber ich verstehe nicht, warum wir eine Header-Datei einfügen, die Deklarationen, aber keine Definitionen enthält.

Möglicherweise muss ich mehr über den Kompilierungs- / Verknüpfungsprozess erfahren, um die Mechanik vollständig zu verstehen, aber gibt es ein übergeordnetes Konzept, das ich zu Beginn nicht verstehe?

Bearbeite: Alle Antworten haben dazu beigetragen, meine Frage zu klären, die sich wie folgt zusammensetzt: Wenn wir dem Compiler mitgeteilt haben, dass eine Funktion an einer anderen Stelle definiert ist, wie findet er heraus, wo diese Definition zu finden ist?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage