Typecasts
In BASIC++ werden manuelle oder automatische Typenumwandlungen als Typecasts bezeichnet. Ein Typecast ist dann unvermeindlich, wenn ein Ausdruck eines bestimmen Typs einer Variable oder einem Parameter eines anderen Typs zugewiesen wird.
Einfaches Beispiel
DEFINE a AS BYTE DEFINE b AS WORD b = 100 a = b
Im obigen Beispiel wird die WORD-Variable automatisch in eine BYTE-Variable konvertiert, wobei das Betriebssystem das Low-Byte von b in a speichert und das Highbyte verwirft. Auf Grund des internen 16-Bit Rechenstacks wird hier kein manueller Typecast benötigt. Es gibt jedoch auch Beispiele, wie die Konvertierung einer FLOAT-Variablen in eine WORD-Variable, wo BASIC++ einen manuellen Typecast erwartet.
Automatische Typecasts
Diese Typecasts werden vom Betriebssystem automatisch ausgeführt und können nicht vom Benutzer beeinflusst werden.
BIT, BYTE, WORD, PORT, BYTEPORT, WORDPORT, DA
Konstanten werden immer wie WORD-Variablen behandelt.
Manuelle Typecasts
Folgende Typecasts müssen vom Programmierer manuell gesetzt werden.
Alle Rechenoperationen und alle Variablen eines Typs aus der Liste Automatische Typecasts, sowie alle Konstanten werden als WORD-Variable behandelt.
Die Typenkonvertierung für Arrays ist nicht definiert.