SIZEOF

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » S » SIZEOF

Syntax: SIZEOF (Variable)
Typ: Funktion
Kategorie: Speicherverwaltung

SIZEOF gibt die Größe einer Struktur im Speicher in Bytes aus.

Das Ergebnis von SIZEOF ist oft gleich dem von LEN, jedoch nicht immer!

Wird SIZEOF auf Arrays angewendet, gibt es immer nur die Größe eines Elements zurück, nicht des ganzen Arrays. Um Missverständnisse zu vermeiden, sollte SIZEOF deswegen immer nur auf einzelne Elemente statt auf das ganze Array angewandt werden.

Beispiel:

DIM a AS INTEGER, b AS STRING, c AS STRING * 5, d(5) AS INTEGER

PRINT "1) LEN"
PRINT LEN(a)       ' Ausgabe: 4 => 32bit-Integer
PRINT LEN(b)       ' Ausgabe: 0 => Leerstring
PRINT LEN(c)       ' Ausgabe: 5 => 5-Zeichen-String
PRINT LEN(d(0))    ' Ausgabe: 4 => 32bit-Integer
PRINT LEN(d)       ' Ausgabe: 4 => Pointer auf Array, also 32bit-Integer
PRINT
PRINT "2) SIZEOF"
PRINT SIZEOF(a)    ' Ausgabe: 4  => 32bit-Integer
PRINT SIZEOF(b)    ' Ausgabe: 12 => Siehe STRING (Datentyp) für Erklärung
PRINT SIZEOF(c)    ' Ausgabe: 6  => 5 Zeichen + 1 Nullzeichen CHR(0)
PRINT SIZEOF(d(0)) ' Ausgabe: 4  => 32bit-Integer
PRINT SIZEOF(d)    ' Ausgabe: 4  => Pointer auf Array, also 32bit-Integer
SLEEP

Unterschiede zu QB: neu in FreeBASIC

Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht SIZEOF nicht zur Verfügung und kann nur über __SIZEOF aufgerufen werden.

Siehe auch:
LEN, OFFSETOF, STRING (Datentyp), Verschiedenes