Header-Dateien
Du willst wissen, was es mit den Header-Dateien genau auf sich hat? Hier erklären wir dir das Prinzip der Header-Dateien.
Inhaltsübersicht
Header-Datei C – Was sind Header-Dateien?
Bei Header-Dateien handelt es sich im Prinzip um nichts anderes als Textdateien mit der Dateiendung h. Sie liefern uns wichtige Informationen zu den uns zur Verfügung stehenden Funktionsprototypen, versorgen uns mit symbolischen Konstanten und führen eine Liste aller verfügbaren Makros.
Das sind alles nützliche Informationen, die vollkommen wertlos sind, wenn du folgendes ignorierst: Du solltest niemals Bibliotheksfunktionen oder Funktionsdefinitionen direkt in eine Header-Datei schreiben!
Wenn wir also eine korrekte Header-Datei haben, können wir diese einbinden. Das erfolgt ähnlich wie bei Standard-Bibliotheken #include<stdio.h>, allerdings entledigen wir uns der Klammern und ersetzen sie durch Anführungszeichen #include „bsp.h“.
Diese Weise, eine Datei anzubinden, veranlasst den Präprozessor beim Übersetzen dazu, die angegebene Header-Datei in den Quellcode zu kopieren.
C Header Datei Beispiel
Wie sieht so eine header-Datei überhaupt aus? Schauen wir uns dazu ein Beispiel an. In den ersten beiden Zeilen finden wir sogenannte bedingte Anweisungen. Konkret bewirken diese, dass unser Header nur genau einmal in den erweiterten Quellcode kopiert wird – selbst wenn einmal ein Fehler passieren sollte und deswegen die Datei mehrmals mit include eingebunden wird.
Das kann man auch direkt am ersten „Wort“ in Zeile eins sehen, denn ifndef steht für nichts anderes, als für „if not defined“. Die nachfolgende Zeile bildet dann erst unsere „Bibliothek“ aus den nachfolgenden Deklarationen. Darunter sehen wir dann auch unsere Funktions-Prototypen. Sie unterscheiden sich insofern von normal definierten Funktionen, dass sie nicht mit einem Anweisungsblock enden, sondern nach den Parametern einfach ein Strichpunkt gesetzt wird.
Du kannst dir diese Art Funktionen aufzulisten vorstellen, wie ein Klingelbrett in einem Hochhaus. Wir sehen zwar nur die Namen der Bewohner, aber wissen trotzdem, wo diese wohnen und können sie besuchen. Ganz am Ende beenden wir mit #endif. Du kannst natürlich auch zusätzlich zu Funktions-Prototypen noch alle anderen vorher genannten Komponenten in einer solchen Datei platzieren.
Jetzt weißt du alles, was du über Header wissen musst und kannst anfangen, deine eigenen Bibliotheken anzulegen.