•  Back 
  •  Titel 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File15.13.3.2.3  Datentypen                                            TOS

In diesem Text werden die folgenden Datentypen verwendet:

      Name            Größe
     ----------------------------------------
      int             16 Bit mit Vorzeichen
      unsigned int    16 Bit ohne Vorzeichen
      long            32 Bit mit Vorzeichen
      unsigned long   32 Bit ohne Vorzeichen

Der Datentyp char ist ein (ASCII-)Zeichen und wird hier nur als Zei- 
gertyp verwendet, d.h. als Zeiger auf einen C-String (eine Folge von 
Zeichen, die mit einem Nullbyte abgeschloßen sind).


Union

Eine Union entspricht einem varianten Record in Pascal. Es handelt 
sich um eine Struktur, deren einzelne Elemente "übereinander" liegen, 
d.h. denselben Speicherbereich belegen. Welches Element gerade gültig 
ist, ergibt sich aus dem Kontext bzw. bleibt dem Programmierer über- 
lassen.

Beispiel: In der Struktur PFONTINFO wird für die Größenangabe eine 
Union `fsize' verwendet:

     union fsize
     {
      int   size;    /* Fontgröße in Punkt         */
      fix31 size31;  /* Fontgröße in 1/65536 Punkt */
     };

Der Speicherbedarf dieser Union beträgt vier Bytes, da der Typ fix31 
vier Bytes groß ist. Man könnte nun dem Element `size31' eine Größen- 
angabe in 1/65536 Punkt zuweisen und dann den Wert in ganzen Punkt aus 
dem Element `size' auslesen - dies ist aber nicht empfehlenswert, da 
bei der Umrechnung fix31 nach pt immer gerundet werden sollte, s.u.


fix31

Der Datentyp fix31 ist eine Festkommazahl, bei dem die oberen 16 Bit 
den vorzeichenbehafteten Vorkomma-Anteil darstellen und die unteren 16 
Bit den vorzeichenlosen Nachkomma-Anteil. Er wird ausschließlich für 
Größenangaben von Fonts verwendet, die damit auf 1/65536 Punkt genau 
angegeben werden können.

Bei der Umrechnung von fix31 nach pt darf man das Runden nicht ver- 
gessen. Zitat aus dem NVDI-Guide:

Man darf nie, nie, niemals den Nachkommateil einfach abschneiden!