Referenz - FIELD
Syntax: TYPE UDTName FIELD = { 1 | 2 | 4 }
Typ: Schlüsselwort
Kategorie: Speicherorganisation
FIELD wird zusammen mit
TYPE verwendet und legt dort das Padding-Verhalten fest. Dieses bestimmt, dass UDTs auf eine bestimmte Länge "ausgedehnt" werden sollen. Der Zweck liegt darin, dass auf solche ausgedehnten Felder z.T. schneller zugegriffen werden kann. Das Feld wird dabei so ausgedehnt, dass die Anzahl der Bytes, die das Feld im Speicher benötigt, ein ganzzahliges Vielfaches von 1, 2 oder 4 ist. Da FreeBASIC ein 32bit-Compiler ist, wird standardmäßig die Feldbreite 4 verwendet, da 32bit 4 Byte entsprechen.
Beispiel:
Type NormalPacked
i As Integer
b As Byte
End Type
Type BytePacked Field = 1
i As Integer
b As Byte
End Type
Type WordPacked Field = 2
i As Integer
b As Byte
End Type
Type DWordPacked Field = 4
i As Integer
b As Byte
End Type
Print WStr("Größe der einzelnen Datentypen")
Print "Integer : " & SizeOf( Integer)
Print "Byte : " & SizeOf( Byte)
Print
Print WStr("Größe der verschiedenen UDTs")
Print "Ohne Field : " & SizeOf(NormalPacked)
Print "Field = 1 : " & SizeOf( BytePacked)
Print "Field = 2 : " & SizeOf( WordPacked)
Print "Field = 4 : " & SizeOf( DWordPacked)
Sleep
Ausgabe:
Größe der einzelnen Datentypen
Integer : 4
Byte : 1
Größe der verschiedenen UDTs
Ohne Field : 8
Field = 1 : 5
Field = 2 : 6
Field = 4 : 8
Unterschiede zu QuickBASIC:
- QuickBASIC unterstützte noch kein Padding. Daher war die Feldbreite immer 1. Beachten Sie dies, wenn Sie Dateien, die von QuickBASIC generiert wurden in FreeBASIC einlesen
- Unter QuickBASIC wurde FIELD verwendet, um die Puffergröße bei
RANDOM-Files festzulegen. Diese Verwendung ist unter FreeBASIC nicht mehr möglich
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Versionen