home *** CD-ROM | disk | FTP | other *** search
- /* ****************************************************** */
- /* GLOBVARS.C */
- /* (c) 1993 Holger Suhr & DMV */
- /* ****************************************************** */
-
- /******************************************************** */
- /* Das Includefile globals.h enthaelt alle globalen */
- /* Variablen, die Source-uebergreifend in einem Library- */
- /* paket verfuegbar sein sollen. Das Include-File ist so */
- /* angelegt, dass es fuer die Public- wie fuer die */
- /* Extern-Anwendung verwendet werden kann. */
- /* Um fuer alle Anwendungs- und Libraryfunktionen von */
- /* Anfang an klar zu definieren, wer die Public-Angabe */
- /* enthaelt, wird dieses C-File compiliert, dass */
- /* ausschliesslich diesen Zweck erfuellt. Ausserdem kann */
- /* dann nicht von Fall zu Fall vergessen werden, dass */
- /* #define LOCAL an entsprechender Stelle einzutragen. */
- /* Ausserdem gibt es nur eine zentrale Stelle, die */
- /* globale Variablen dieser Art aufzunehmen hat. */
- /* ****************************************************** */
-
- /* ****************************************************** */
- /* Diese Idee kann noch weiter ausgebaut werden, mit */
- /* dem Ziel, nicht immer alle/viele Teile einer Library */
- /* zu linken, wenn nur ein kleiner Teil benoetigt wird, */
- /* nur weil die Libraryfunktionen sich alle unter- */
- /* einander aufrufen. */
- /* */
- /* Haben Sie z.B. ein Paket von 4 Funktionen, die einen */
- /* bestimmten Zweck erfuellen, die jedoch nicht zwangs- */
- /* laeufig verwendet werden muessen, oder durch andere */
- /* Standardfunktionen umgangen werden koennen, dann */
- /* bietet sich folgende Moeglichkeit an: */
- /* */
- /* In globals.h werden nach gleichem Schema, wie bei den */
- /* anderen globalen Variablen, 4 Funktionspointer */
- /* deklariert, die entweder mit NULL oder mit einer */
- /* Standardfunktion vorbelegt werden. */
- /* */
- /* Solange das Paket mit den 4 Funktionen noch nicht */
- /* ausdruecklich initialisiert wurde (snd_init() z.B.) */
- /* ist die entsprechende globale Variable */
- /* (soundinstalled z.B.) noch 0, und die Pointer zeigen */
- /* auf die Alternativfunktionen. */
- /* Sie koennen also die Installation des Paketes */
- /* testen, ohne dadurch zwangslaeufig das Funktions- */
- /* paket allein durch den Test schon zu linken. (weil */
- /* soundinstalled in globals.c liegt und nicht im */
- /* source-file der soundfunktionen). */
- /* */
- /* Als konkretes Beispiel sei hier ein Paket von */
- /* Sound-Funktionen angefuehrt. Ist dies Paket nicht */
- /* installiert, kann als Alternative ein putchar(7) */
- /* einen Beep verursachen. Wird jedoch vom eigentlichen */
- /* Anwendungsprogramm ein snd_init() ausgefuehrt, dann */
- /* ueberschreibt snd_init den Funktionspointer */
- /* (Snd_beep()) in globals.h, der mit putchar(7) */
- /* vorbelegt war durch die Funktion snd_beep(), die */
- /* dann einen eleganten 3-Ton-Beep aus der Sound- */
- /* Verwaltung erzeugt. */
- /* ****************************************************** */
- #define LOCAL
- #include "globals.h"
- /* ****************************************************** */
- /* Ende von GLOBVARS.C */
-
-
-