Header-Datei: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K (1 Versionen)
K
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
  
 
Beispiel für die Verwendung einer ''Header-Datei'' in einer Übersetzungseinheit:
 
Beispiel für die Verwendung einer ''Header-Datei'' in einer Übersetzungseinheit:
<code>
+
 
 +
<syntaxhighlight lang="cpp">
 
  #include <stdio.h>
 
  #include <stdio.h>
 
   
 
   
 
  // ... (weiterer Quelltext)
 
  // ... (weiterer Quelltext)
</code>
+
</syntaxhighlight>
 +
 
 +
<br/>
 +
 
 +
Eine weitere Möglichkeit, die sich vor allem für selbstgeschriebene ''Header-Dateien'' eignet, besteht darin den Header-Namen in Anführungszeichen zu schreiben.
 +
 
 +
Beispiel:
 +
 
 +
<syntaxhighlight lang="cpp">
 +
#include "myownheader.h"
 +
 +
// ... (weiterer Quelltext)
 +
</syntaxhighlight>
 +
 
 +
<br/>
 +
 
 +
Durch die Anführungszeichen wird der [[Präprozessor]] angeweisen, zuerst das aktuelle Verzeichnis nach der ''Header-Datei'' zu durchsuchen, und nur falls diese nicht gefunden wird, die Suche auf das Standard-Include Verzeichnis auszuweiten (z.B. ''/usr/include'' unter Debian).
  
 
''Header-Dateien'' funktionieren nach dem Prinzip der textuellen Ersetzung. In neueren Programmiersprachen wird das Konzept der ''Header-Dateien'' nicht mehr verwendet. Stattdessen gibt es ''Module'', die nicht mehr Text sondern Symbolinformationen einbinden. Dies ermöglicht eine bessere Trennung zwischen [[Schnittstelle]] und [[Implementierung]] und sorgt in der Regel auch für kürzere Erstellungszeiten beim Kompilieren des Programmes.
 
''Header-Dateien'' funktionieren nach dem Prinzip der textuellen Ersetzung. In neueren Programmiersprachen wird das Konzept der ''Header-Dateien'' nicht mehr verwendet. Stattdessen gibt es ''Module'', die nicht mehr Text sondern Symbolinformationen einbinden. Dies ermöglicht eine bessere Trennung zwischen [[Schnittstelle]] und [[Implementierung]] und sorgt in der Regel auch für kürzere Erstellungszeiten beim Kompilieren des Programmes.
  
 +
 +
==Ergänzung:==
 +
 +
Eine weitere Variante (in [[C++]])  wäre die Schreibweise, in der die Header in einem Namespace zusammen geführt werden (meiner Meinung nach, eine elegantere Methode):
 +
 +
<syntaxhighlight lang="cpp">
 +
#include <iostream>
 +
using namespace std;
 +
 +
// ... (weiterer Quelltext)
 +
</syntaxhighlight>
 +
 +
 +
[[Kategorie:Programmierung]]
 
[[Kategorie:C]]
 
[[Kategorie:C]]
 
[[Kategorie:Cpp]]
 
[[Kategorie:Cpp]]
  
 
{{Wikipedia|Seite=Header-Datei}}
 
{{Wikipedia|Seite=Header-Datei}}

Aktuelle Version vom 12. Juni 2019, 15:34 Uhr

Eine Header-Datei ist in der Programmierung, insbesondere bei den Programmiersprachen C++ und C, eine Textdatei, die Deklarationen und andere Bestandteile des Quelltextes enthält. Quelltext, der sich in einer Header-Datei befindet, ist im Allgemeinen zur Verwendung in mehreren Teilen des Programmes vorgesehen.

Zur Vereinfachung des Umgangs mit mittelgroßen oder großen Programmen unterteilt man Programme in mehrere Einheiten (auch Übersetzungseinheiten genannt). Dabei werden zusammengehörige Quelltextebestandteile in Dateien zusammengefasst, auf die von anderen Dateien Bezug genommen werden kann.

Header-Dateien bilden sozusagen die Schnittstellen zwischen den verschiedenen Bestandteilen eines Programms. In Programmbibliotheken bilden Header-Dateien den einsehbaren Teil der Bibliothek, wohingegen der Rest in Übersetzungseinheiten oft vorübersetzt, also nicht in Form von Quelltext, vorliegt.

Beispiel für die Verwendung einer Header-Datei in einer Übersetzungseinheit:

 #include <stdio.h>
 
 // ... (weiterer Quelltext)


Eine weitere Möglichkeit, die sich vor allem für selbstgeschriebene Header-Dateien eignet, besteht darin den Header-Namen in Anführungszeichen zu schreiben.

Beispiel:

 #include "myownheader.h"
 
 // ... (weiterer Quelltext)


Durch die Anführungszeichen wird der Präprozessor angeweisen, zuerst das aktuelle Verzeichnis nach der Header-Datei zu durchsuchen, und nur falls diese nicht gefunden wird, die Suche auf das Standard-Include Verzeichnis auszuweiten (z.B. /usr/include unter Debian).

Header-Dateien funktionieren nach dem Prinzip der textuellen Ersetzung. In neueren Programmiersprachen wird das Konzept der Header-Dateien nicht mehr verwendet. Stattdessen gibt es Module, die nicht mehr Text sondern Symbolinformationen einbinden. Dies ermöglicht eine bessere Trennung zwischen Schnittstelle und Implementierung und sorgt in der Regel auch für kürzere Erstellungszeiten beim Kompilieren des Programmes.


Ergänzung:

Eine weitere Variante (in C++) wäre die Schreibweise, in der die Header in einem Namespace zusammen geführt werden (meiner Meinung nach, eine elegantere Methode):

 #include <iostream>
 using namespace std;
 
 // ... (weiterer Quelltext)
Dieser Beitrag stammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Er ist dort unter Header-Datei zu finden, die Liste der bisherigen Autoren befindet sich in der Versionsliste.