VB -26: Variablentypen

Namensschilder für's Speichermanagement

Bisher haben wir einfach neue Variablen benutzt, wie es uns gerade einfiel. Wir haben uns nicht lange Gedanken darüber gemacht, wie diese intern gespeichert werden. Sollten wir aber... Denn es gilt, stets mit dem kostbaren Speicher zu haushalten.

Jedesmal, wenn wir eine neue Variable einführen, muß unser Programm dafür Speicher reservieren lassen. Unterlassen wir es, dem Programm zu sagen, um welche Art von Variable es sich handelt, geht es vom Typ "Variant" aus. Dieser Variablentyp kann für alle Zahlentypen (oder auch Zeichenketten, das hängt dann von der tatsächlichen Benutzung ab) angewandt werden, egal, ob es sich um ganze Zahlen oder Zahlen mit mehreren Kommastellen handelt.

Im Speicher werden dafür 16 Byte (bei Zahlen) verbraucht (22 Byte + Zeichenlänge bei Zeichenketten). Würde aber der Platz für eine "Ganze Zahl" (Integer) benutzt, so bräuchte man dafür nur 2 Byte. Ein erheblicher Unterschied!

Im Einzelnen gibt es folgende Variablentypen unter VB:
Typ Speicher Bereich
Byte 1 byte 0 to 255
Boolean 2 bytes True oder False (logische Variable)
Integer 2 bytes -32 768 to 32 767
Long
(long integer)
4 bytes -2 147 483 648 bis 2 147 483 647
Single
(single-precision floating-point)
4 bytes -3,402823E38 bis -1,401298E-45 für negative Werte;
1,401298E-45 bis 3,402823E38 für positive Werte
Double
(double-precision floating-point)
8 bytes -1,79769313486232E308 bis -4,94065645841247E-324 für negative Werte;
4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte
Currency
(scaled integer)
8 bytes -922 337 203 685 477,5808 bis 922 337 203 685 477,5807
Decimal 14 bytes +/-79 228 162 514 264 337 593 543 950 335 ohne Dezimalpunkt;
+/-7,9228162514264337593543950335 mit 28 Stellen vor dem Komma; die kleinste Nicht-Null-Zahl ist +/-0,0000000000000000000000000001
Date 8 bytes 1. Januar 100 bis 31. Dezember 9999
Object 4 bytes Object Referenz
String
(variable-length)
10 bytes + string length 0 bis ungefähr 2 Billionen
String
(fixed-length)
Länge der Zeichenkette 1 bis ungefähr 65.400
Variant
(bei Zahlen)
16 bytes Zahl bis max. Double
Variant
(bei Zeichen)
22 bytes + Zeichnkettenlänge wie variabler String

Wir sollten uns stets bemühen, nur so viel Platz wie nötig reservieren. Es gibt verschiedene Möglichkeiten, dem Programm den Variablentyp bekanntzugeben. Die einfachste besteht darin, jeder Variablen ein Sonderzeichen als Suffix anzuhängen, das unter VB seine festgelegte Bedeutung hat:

Damit kann man schon eine Menge erreichen. Man kann es als eine Art "Namensschild" betrachten, die dann jede Variable mit sich rumträgt. Beispiel:

        For i% = 1 To x%                       'x Kugeln anzeigen
            imgKugelX(i% - 1).Visible = True   '1 abziehen, weil Index mit 0 beginnt!
            Verzoegerung 0.05                  'kleine Verzögerung, damit wir sehen, wie die Kugeln angezeigt werden
        Next
        

Hier habe ich eine Schleife aus unserem Programm so modifiziert, daß die Schleifenvariablen, die in unserem Fall stets ganzzahlig sind, durch Anhängen des %-Zeichens dem Programm als Integer vorgestellt werden. Es werden für die Variablen i% und x% nur noch 2 anstelle von 16 Byte verbraucht.

Eine andere Methode, wie man Variablen vorstellen kann und welche positivien Nebeneffekte das hat, werden wir in unserer nächsten Lektion kennenlernen...

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.