Header-Datei: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Änderung 4233 von Jango (Diskussion) wurde rückgängig gemacht.)
(Hinzugefügt #include "myownheader.h")
Zeile 14: Zeile 14:
  
 
<br/>
 
<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:
 +
 +
<code=c>
 +
#include "myownheader.h"
 +
 +
// ... (weiterer Quelltext)
 +
</code=c>
 +
 +
<br/>
 +
 +
Durch die Anführungzeichen 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.
  
Zeile 19: Zeile 34:
 
==Ergänzung:==
 
==Ergänzung:==
  
Eine weitere Variante wäre die Schreibweise, in der die Header in einem Namespace zusammen geführt werden (meiner Meinung nach, eine elegantere Methode):
+
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):
  
 
<code=cpp>
 
<code=cpp>

Version vom 13. Dezember 2009, 17:40 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:

<code=c>

#include <stdio.h>

// ... (weiterer Quelltext)

</code=c>


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:

<code=c>

#include "myownheader.h"

// ... (weiterer Quelltext)

</code=c>


Durch die Anführungzeichen 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):

<code=cpp>

#include <iostream>
using namespace std;

// ... (weiterer Quelltext)

</code=cpp>

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.