| |
|
|
Michael Wodrich | Struct <b>Name</b> = E1 [,E2,E3...] Parameter: <b>Name</b>: Name der Struktur E1 .. En: Elemente der Struktur
Es wird eine Struktur definiert, die aus den angegebenen Elementen besteht.
Beispiel: Struct Kunde = Name$(40),Strasse$(40),Ort$(40),Umsatz&,Status%
Mit dieser Struktur kann eine Bereichsvariable, die zuvor deklariert wurde, dimensioniert werden:
Dim Bereich#,Kunde Bereich#.Name$ = "Hubert Maier" Bereich#.Umsatz& = 49
Der Typ der Elemente wird durch das Postfix gekennzeichnet:
&: Alle Zeiger, Pointer, LongInteger, UnsignedLong, UInt, Integer, etc., die 32 Bit bzw. 4 Byte breit sind, werden als Longints (&) in der Struktur dargestellt. <b>Hinweis:</b> Es ist ziemlich egal, was in den vier Bytes gespeichert wird. Ob es z.B. ein SignedInteger oder UnsignedInteger ist, ... solange nicht damit gerechnet wird.
%: Alle ShortInt und andere zwei Byte (16 Bit) grosse Elemente werden als Integer (%) dargestellt.
!: Fliesskommazahlen (Double-Format: 64 Bit bzw. 8 Byte, das entspricht dem Float-Typ von XProfan).
$(n): Strings. n=Länge des Strings. Strings kommen in API-Aufrufen sehr selten vor, machen aber sonst oft Sinn. Es ist zu berücksichtigen, dass immer ein Null-Byte als Endekennzeichen angehängt wird!
#(n): Speicherbereich. n=Grösse des Bereiches. Diese Speicherbereiche innerhalb einer Bereichsvariablen sind nicht mit Bereichsvariablen selbst zu verwechseln. Innerhalb der Struktur wird ein entsprechend grosser Bereich an Bytes definiert, auf den wie bei einem String zugegriffen werden kann, mit dem Unterschied, dass es kein Null-Byte als Endekennzeichen gibt. Bei API-Aufrufen wird man diese Bereiche dort verwenden, wo Strukturen vorkommen, die eben nicht zwei oder vier Byte gross sind, etwa bei Flags, die häufig ein Byte gross sind.
Wichtig für den zu wählenden Typ ist ausschliesslich die Anzahl der Bytes! Besonders bei der Umsetzung von Strukturen aus der Windows-API ist dies zu berücksichtigen.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 05.06.2005 ▲ |
|
|
|