
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Tommy! > Könntest du bitte noch die Verwendung von DIM...AS...OF erklären? Bei CCBASIC mußte bei der Definition von Bitvariablen immer ein Index, also eine feste Position im User-RAM, angegeben werden. Dadurch kam es oft zu ungewollten Variablenüberschneidungen. Die Folge davon war, daß viele Anwender sicherheitshalber bei allen Variablendefinitionen einen Index angaben, was aber eine exakte Planung des Variablenspeichers erforderlich machte. Das ist natürlich wesentlich unkomfortabler und fehlerträchtiger als den Speicherplatz vom Compiler automatisch zuordnen zu lassen. Der OCBASIC-Compiler bietet mit DIM...AS...OF eine neue Syntax an, mit der BIT-Variablen nicht mehr auf einer festen Position im User-RAM gespeichert werden muessen. Stattdessen wird eine BYTE- oder WORD-Variable ohne Index definiert, in der BIT-Variablen abgelegt werden können. Sofern keine Variablenüberschneidungen gewünscht, kann und sollte man von nun an vollkommen ohne explizite Speicherplatzzuweisung arbeiten. Die Anzeige der benutzten RAM-Bytes bezieht sich außerdem nur auf den Fall, in dem der OCBASIC-Compiler den Speicherplatz automatisch zuordnet. DEFINE bitarray BYTE ' Eine normale Bytevariable im User-RAM. DEFINE b0 BIT[1] OF bitarray ' Durch diese Anweisungen koennen alle DEFINE b1 BIT[2] OF bitarray ' Bits der Bytevariable bitarray einzeln DEFINE b2 BIT[3] OF bitarray ' angesprochen werden. Falls sich die DEFINE b3 BIT[4] OF bitarray ' Lage der Bytevariable durch Hinzufuegen DEFINE b4 BIT[5] OF bitarray ' weiterer Variablen verschieben sollte, DEFINE b5 BIT[6] OF bitarray ' passt der Compiler automatisch die Lage DEFINE b6 BIT[7] OF bitarray ' der Bitvariablen an. Der Anwender muss DEFINE b7 BIT[8] OF bitarray ' sich darum also nicht mehr kuemmern. b7=ON PRINT b6 Mit diesem Verfahren lassen sich auch WORD-Variablen in ihre zwei Bytes und LONG-Variablen in vier Bytes oder 2 WORDs zerlegen. Byte- oder Wordports mit dieser Syntax zu zerlegen, würde natürlich keinen großen Sinn machen. Übrigens handelt es sich um das verkürzte Beispiel BITARRAY.BAS, das sich zusammen mit einigen anderen Beispielprogrammen im ZIP-Archiv des Compilers befindet. Viele Grüße Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |