next up previous
Nächste Seite: Typisierte Konstanten Aufwärts: Charakteristik verschiedener Typen Vorherige Seite: SET-Typen


BPOINTER und BPTR

AmigaDOS verwendet neben normalen Zeigern sogenannte BCPL-Zeiger. Dies sind Zeiger, deren Wert 4 mal kleiner ist als die Adresse, auf die sie zeigen. erlaubt die Deklaration derartiger Zeiger. Dies geschieht. indem man einen Zeiger als BPOINTER TO ... deklariert.

Beispielsweise enthält das Modul DosD die Deklaration

FileHandlePtr = BPOINTER TO FileHandle;

Variablen dieses Typs kann man wie normale Variablen verwenden, der Compiler erzeugt nötigenfalls automatisch die Multiplikation mit 4, um auf die Elemente des FileHandles zuzugreifen.

Wird eine Typenkonversion eines BPOINTERs nach POINTER oder umgekehrt durchgeführt, dann wird ebenfalls der Wert des Zeigers entsprechend konvertiert.


\begin{warning}
Wird statt einer Typenkonversion ein Typentransfer mit {\tt CAST}
durchgef\uml {u}hrt, wird der Wert {\em nicht\/} angepasst!
\end{warning}

Soll eine Variable zu allen BPOINTER-Typen kompatibel sein, muss diese vom Typ SYSTEM.BPTR sein. Dieser hat für die BPOINTER-Typen die gleiche Funktion wie ADDRESS für die POINTER-Typen.



Claudio Nieder 2000-11-12