Atari Logo
Atari Computer

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

C

Home modulares Comilieren cjar.h cmain.c

12.4 cjar.c

Die Implementierung zeigt auch, wie ein Modul automatisch initialisiert werden kann. Dazu wird einfach der Zeiger auf den Cookie Jar mit einem entsprechenden Wert initialisiert. Dies ist NULL für einen ungültigen Zeiger. Bei jedem Zugriff kann nun geprüft werden, ob dieser Zeiger noch ein ungültiger Zeiger ist und die Initialisierung aufgerufen werden.

Weiterhin nutzt diese Modul auch Funktionspointer für das Durchwandern des Cookie Jars. Damit kann eine Funktion, die etwas mit einem Cookie tut, an anderer Stelle programmiert werden. Dieses Modul weiß, wie man den Cookie Jar durchläuft und ruft für jeden Cookie die Funktion auf, die etwas mit einem einzelnen Cookie tut.

#ifdef __TURBOC__
#include <tos.h>
#else
#ifdef __GNUC__
#include <osbind.h>
#else
#include <tosbind.h>
#endif
#endif

#include <stddef.h>
#include "cookie.h"
#include "cjar.h"

#define _p_cookies (void *)0x5a0l

CookieEntry *CookieJar = NULL;

int CjarInit(void)
{  long OldStack;

   OldStack = Super(0L);
   CookieJar = *((CookieEntry**)_p_cookies);
   Super((void *)OldStack);
   return (CookieJar != NULL);
}

CookieEntry *CjarSearchL(long Name)
{
   return NULL;
}

CookieEntry *CjarSearchS(char *Name)
{
   return NULL;
}

void CjarTraverse(CookieAction ActionFkt)
{  CookieEntry *AktCookie;

   if (CookieJar != NULL)
      CjarInit();
   if (CookieJar != NULL)
   {
      AktCookie = CookieJar;
      while (!CookieIsNullCookie(AktCookie))
      {
         (*ActionFkt)(AktCookie);
         AktCookie++;
      }
   }
}

Home modulares Comilieren cjar.h cmain.c


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