
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo, ich habe den "Fehler" gefunden. Ich benutze in meinem Progrämmchen mehrfach den Ausdruck if Variable then Anweisung Dabei ist die Variable ein Bytewert. Der Sinn sollte klar sein. Wenn der Ausdruck wahr ist, d. h. die Variable hat einen Wert abweichend von 0, wird die Anweisung ausgeführt. Für mein Verständnis eine absolut übliche Vorgehensweise, die auch leicht in Assembler umzu- setzen ist. Bei der M-Unit der alten Bauart funtkioniert dies auch seit Jahren ohne Probleme. Bei der M-Unit 1.2 scheint dieser Ausdruck allerdings niemals wahr zu werden. Die Anweisung wird also niemals ausgeführt bzw. ein eventuell vorhandenes else wird immer ausgeführt. Durch dieses Verhalten hat mein Programm natürlich sehr seltsame Dinge produziert. Wird die oben angegebene Zeile ersetzt durch: if Variable >0 then Anweisung funktioniert wieder alles wie vorgesehen. Der Compiler erzeugt dann einen etwas anderen Code, was schon dadurch ersichtlich wird, dass das Eergebnis einige Bytes größer wird. In meinen Augen ein echter Bug. Gruß Heiner |
| Antwort schreiben |