Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

C

Home Inhaltsverzeichnis defines für den Cookie Jar cookie.h

12 modulares Comilieren

Bisher wurde nach dem Compilieren das Programm schon mit Bibliotheken, also weiteren Funktionen, zu einem ausführbaren Programm gelinkt. Genauso läßt sich der Code des eigenen Programms auch auf mehrere Dateien aufteilen, die zusammengelinkt werden. Das Aufteilen auf mehrere Dateien bietet folgende Vorteile:

Damit verbunden ist allerdings der höhere Verwaltungsaufwand, wenn mehrere Dateien übersetzt und gelinkt werden müssen. Diese Arbeit kann aber dem Computer überlassen werden, wenn das Tool make benutzt wird. TC bzw. PC benutzt Projektdateien. Dies ist eine einfachere Variante, die die Einbindung anderer Programme als die der Entwicklungsumgebung nicht erlaubt. Wir werden hier beide Varianten besprechen, die Aufteilung des Programms ist davon unberührt.

Was wäre eine mögliche Aufteilung des Cookie Programms auf einzelne Dateien? Eine gute Möglichkeit ist es, wie bei der Suche nach möglichen Kandidaten für Objekte vorzugehen. Dazu sucht man nach Substantiven, die unsere Objekte bzw. Strukturen liefern. Die zu diesen Substantiven passenden Verben liefern die Methoden bzw. Funktionen. Bei der Vorstellung möglicher Module sollten möglichst viele Ideen über den Aufbau solcher Module vermittelt werden. Deshalb sind die Module nicht komplett nach den gleichen Ideen entworfen worden.

Zum einen haben wir den Cookie. Einen Cookie kann man auf einen Wert setzen, auf dem Monitor ausgeben, in eine Datei schreiben, einlesen, aus einer Datei einlesen, vergleichen. Damit haben wir zwar mehr Funktionen, als hier benötigt. Wir haben aber auch schon genug Ideen für das nächste Kapitel über die ANSI Libs. Das Modul enthält auch Funktionen bzw. Makros für das Setzen und Lesen der Komponenten der Struktur. Es ist auch möglich, direkt die Strukturkomponenten zu benutzen. Die Verwendung von entsprechenden Methoden erlaubt es, den Aufbau der Struktur (z.B. für eine Verbesserung) zu ändern, ohne daß sich der Zugriff ändert. Werden Objekte deklariert, kann sogar der Zugriff auf diese Komponenten verhindert werden. Das nennt sich data hiding, der Anwender bekommt nur Zugriff über eine definierte Schnittstelle. Eine Initialisierung des CookieEntrys ist nicht erforderlich, weil es keine sinnvolle Vorbesetzung gibt oder der Cookie sowieso aus dem Cookie Jar stammt. Neue Cookies müssen sowieso kommplett auf ihren Wert gesetzt werden.

Dann haben wir den CookieJar. Zuerst muß der CookieJar ermittelt werden, wir können nach bestimmten Cookies suchen und den CookieJar durchwandern.

Der Linker kann nur gesamte Objektdateien zu einem Programm zulinken und keine einzelnen Funktionen aus einem Modul herausholen. Deshalb wird üblicherweise jede Funktion in eine einzelne Datei geschrieben und die daraus resultierenden Objektdateien zu einer Bibliothek linken. Wir begnügen uns hier allerdings mit einer Objektdatei.

Die einzelnen Module werden nun der Reihe nach vorgestellt. Funktionen, für die noch zusätzliches Wissen erforderlich ist, werden zunächst ohne Funktionalität implementiert.

Damit die für ein Modul definierten Datentypen auch in anderen Modulen verwendet werden können und der Compiler die Parameter eines Funktionsaufrufs auf korrekte Parameter prüfen kann, schreiben wir eine Headerdatei. Die Headerdatei fragt zuerst ab, ob wir einen bestimmten Namen definiert haben. Wenn ja, ist unsere Includedatei schon bekannt und wir müssen unsere Definitionen "verstecken", um Fehlermeldungen oder Warnungen es Compilers zu vermeiden. Wenn nein, definieren wir zuerst den Namen und anschließend alles, was unser Modul anderen zur Verfügung stellt.



Home Inhaltsverzeichnis defines für den Cookie Jar cookie.h


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum