Kopfball-Datei

In der Computerprogrammierung ist Kopfball-Datei eine Datei, die Programmierern erlaubt, bestimmte Elemente eines Quellcodes eines Programms in Mehrwegdateien zu trennen. Kopfball-Dateien enthalten allgemein Vorwärtsbehauptungen von Klassen, Unterprogrammen, Variablen und anderen Bezeichnern. Programmierer, die standardisierte Bezeichner in mehr als einer Quelldatei erklären möchten, können solche Bezeichner in eine einzelne Kopfball-Datei legen, die anderer Code dann einschließen kann, wann auch immer der Kopfball-Inhalt erforderlich ist. Das soll die Schnittstelle im von der Durchführung getrennten Kopfball halten. Die C Standardbibliothek und C ++ Standardbibliothek erklären traditionell ihre Standardfunktionen in Kopfball-Dateien.

Neuere kompilierte Sprachen (wie Java, C#) verwenden Vorwärtsbehauptungen nicht; Bezeichner werden automatisch von Quelldateien anerkannt und direkt von dynamischen Bibliothekssymbolen gelesen. Das bedeutet, dass Kopfball-Dateien nicht erforderlich sind.

Motivation

Auf den meisten modernen Computerprogrammiersprachen können Programmierer Programme in kleinere Bestandteile (wie Klassen und Unterprogramme) zerbrechen und jene Bestandteile unter vielen Übersetzungseinheiten verteilen (normalerweise in der Form von Quelldateien), den das System getrennt kompilieren kann. Sobald ein Unterprogramm irgendwo anders verwendet werden muss als in der Übersetzungseinheit, wo es definiert wird, muss eine Weise, sich darauf zu beziehen, bestehen. Zum Beispiel, eine Funktion definiert auf diese Weise in einer Quelldatei:

interne Nummer trägt (interne Nummer a, interne Nummer b) bei

{\

kehren Sie + b zurück;

}\</Quelle>

kann (mit einem Funktionsprototyp) erklärt und dann auf in einer zweiten Quelldatei wie folgt verwiesen werden:

interne Nummer trägt (interne Nummer, interne Nummer) bei;

interne Nummer dreifach (interne Nummer x)

{\

Rückkehr trägt bei (x, tragen Sie (x, x)) bei;

}\</Quelle>

Ein Nachteil dieser Methode besteht darin, dass der Prototyp in allen Dateien da sein muss, die die Funktion verwenden. Ein anderer Nachteil besteht darin, dass, wenn der Rücktyp oder die Argumente der Funktion geändert werden, diese Prototypen werden aktualisiert werden müssen. Dieser Prozess kann mit dem C Vorverarbeiter automatisiert werden (d. h., das Bekommen jedes Prototyps läuft auf das Bekommen des letzten hinaus). Zum Beispiel erklärt der folgende Code die Funktion in einer getrennten Datei (die Parameter-Namen werden durch den Bearbeiter nicht verwendet, aber sie können für Programmierer nützlich sein):

Datei "add.h"

  1. ifndef ADD_H_GUARD
  2. definieren Sie ADD_H_GUARD

interne Nummer trägt (interne Nummer a, interne Nummer b) bei;

  1. endif
</Quelle>

Diese Datei Gebrauch schließt Wächter ein, um vielfache Definitionen der Funktion zu vermeiden. Der folgende Code demonstriert, wie Kopfball-Dateien verwendet werden:

  1. schließen Sie "add.h" ein
interne Nummer dreifach (interne Nummer x){\

Rückkehr trägt bei (x, tragen Sie (x, x)) bei;

}\</Quelle>

Jetzt, jedes Mal, wenn der Code kompiliert wird, werden die letzten Funktionsprototypen in add.h in die Dateien mit ihnen eingeschlossen, potenziell unglückselige Fehler vermeidend.

Alternativen

Einige neuere Sprachen (wie Java) verzichten auf Kopfball-Dateien und verwenden stattdessen ein Namengeben-Schema, das dem Bearbeiter erlaubt, die Quelldateien ausfindig zu machen, die mit Schnittstellen und Klassendurchführungen vereinigt sind. Diese Sprachen (und vielleicht andere) bewahren Typ-Information für Funktionen im Gegenstand-Code, dem linker erlaubend, nachzuprüfen, dass Funktionen richtig verwendet werden.

COBOL und RPG IV haben eine Form dessen schließen Dateien genannt Schreibhefte ein. Programmierer "schließen" diese in die Quelle des Programms auf eine ähnliche Weise zu Kopfball-Dateien "ein", aber sie erlauben auch, bestimmten Text in ihnen mit anderem Text zu ersetzen. Das COBOL-Schlüsselwort für die Einschließung ist, und Ersatz wird mit einer Klausel getan.

Fortran verlangt Kopfball-Dateien per se nicht. Jedoch hat Fortran 90 und später zwei zusammenhängende Eigenschaften: Schließen Sie Behauptungen und Module ein. Der erstere kann verwendet werden, um eine allgemeine Datei zu teilen, die Verfahren-Schnittstellen viel wie ein C Kopfball enthält, obwohl die Spezifizierung einer Schnittstelle für alle Varianten von Verfahren von Fortran nicht erforderlich ist. Diese Annäherung wird nicht allgemein verwendet; stattdessen werden Verfahren allgemein in Module gruppiert, in denen dann mit einer Gebrauch-Behauptung innerhalb anderer Gebiete des Codes Verweise angebracht werden kann. Für Module wird Schnittstelle-Information des Kopfball-Typs durch den Bearbeiter automatisch erzeugt, und normalerweise ins getrennte Modul (gewöhnlich *.mod) Dateien in einem vom Bearbeiter abhängigen Format gestellt, obwohl einige Bearbeiter diese Information direkt in Gegenstand-Dateien gelegt haben. Bemerken Sie, dass die Sprachspezifizierung selbst die Entwicklung keiner Extradateien beauftragt, wenn auch Modul-Verfahren-Schnittstellen fast auf diese Weise allgemein fortgepflanzt werden.

Siehe auch

  • Schließen Sie Direktive ein
  • Eine Definitionsregel
  • Anwendung, Schnittstelle programmierend
  • Schnittstelle-Definitionssprache
  • #pragma einmal

Links

, über

Nathaniel Greene / Lichtenstein (Nachname)
Impressum & Datenschutz