DEFINE
(redirected from BASIC2006.DIM)
Eine Variable wird mit dem Schlüsselwort DEFINE angelegt. Diese Zuweisung wird benötigt um variable Speicherplätze für Zahlen und Zustände und den Ports der C-Control zu arbeiten. Dabei wird einem beliebigen zulässigen Variablenbezeichner eine Speicherzelle bzw. einen Port des Controllers eines bestimmten Typs zugeteilt. Es gibt 2 Arten der Deklaration von Variablen. Die eine Art mit dem Schlüsselwort "AS" ist die direkte Art der Deklaration von Variablen. Weiter können mit den Schlüsselwort "REF" andere schon deklarierte Variablen und Teilbereiche innerhalb dieser Variablen deklariert werden.
Ohne Angabe von festen Offsets platziert BASIC++ die Variablen (Bit, Byte, Word, Arrays, Strings und Float) optimal bezüglich der Speicherplatz ausnutzung.
Bemerkung:
Alternativ kann auch das Schlüsselwort DIM anstatt Define verwendet werden.
Syntax:
DEFINE VarName AS VarTyp[index] [, [...]]
VarName: Erforderlich, Name der zu erstellenden Variable. AS: "AS" ist Optional.
VarType: Typisierung der Zuweisung, Word, Byte, Bit, Port, Byteport, Wordport, AD, DA, String, Float
[Index]: Bei der "AS"-Deklaration optional um Variablen einem Speicherplatz fest zuzuordnen. Dabei ist der angegebene Index der absolute Offset des Variablentyps.
DEFINE VarName REF RefName (AT VarTyp[Index]) [, [...]]
VarName: Erforderlich, Name der zu erstellenden Variable.
REF: Mit REF kann der Speicherplatz einer anderen deklarierten Variable verwendet werden, um den Speicherplatz mit ihr zu teilen. Referenzen auf Arrays und deren Elemente sind zur Zeit noch nicht implementiert.
REFName: Erforderlich, Der Variablenname auf die verwiesen wird.
AT: Optional. Mit AT kann man der zu deklarierende Variable auf Teilbereiche der verwiesenen Speicherzelle verweisen.
VarTyp: In Verbindung mit "AT" erforderlich.
[Index]: In Verbindung mit "AT" erforderlich. Dabei gibt der Indexwert den Offset innerhalb der verwiesenen Variable an.
Beispiel:
DEFINE myWord as Word 'wohlgemerkt ohne 'Offset! DEFINE WordByte1 ref myWord at byte[1] 'MSB DEFINE WordByte2 ref myWord at byte[2] 'LSB DEFINE WordBit16 ref myWord at bit[16] 'Bit16 von myWord DEFINE a as byte, b byte, c as word[4] 'gemischte 'Deklaration DEFINE d as string * 10 'String-Deklaration DEFINE x ref a 'x bezieht sich auf 'Variable a DEFINE Light as Port[1] 'Digitalport 1 DEFINE States as BytePort[2] 'Digital-Byteport 2 DEFINE Analog as AD[1] 'Analoger Eingang 1 DEFINE Output as DA[1] 'Analoger Ausgang 1
Die maximale Länge eines Strings sollte aus Performance-Gründen nicht größer als 64 Byte sein.
Siehe auch: Pointer, FLOAT, STRING, BIT, BYTE, WORD, AD, DA, BYTEPORT, PORT, WORDPORT, CHIPRAM, Arrays