Hallo
Ich bin da heute auf was meiner Meinung nach seltsames gestoßen.
Ich habe in der Vergangenheit schon öfters Wordvariablen den Inhalt von Bytevariablen zugewiesen und korrekte Ergebnisse erhalten.
Heute war das aber anders.
Vielleicht auch deshalb weil in konkreten Fall die Wordvariable mit dem Wert 65535 (also &HFFFF) belegt wurde und in der Folge dann durch eine Funktion die einen Bytewert zurück gibt in nur im Lowbyte verändert wurde.
Bisher war ich eigentlich davon ausgegangen, dass bei einer derartigen Zuweisung die gesamte Variable betroffen ist.
Nur erhalte ich im vorliegenden Fall als Ergebnis nicht &H0001 sondern &HFF01 (dezimal 65,281).
Sprich das Highbyte der Wordvariable wird nicht beeinflusst.
Ist das ein Fehler oder erwarte ich zuviel und das Verhalten ist schon immer so und es fiel mir nur nicht auf, weil die Variablen üblicherweise in einem Programmablauf eher mit dem Wert Null vorbelegt werden?
Ich bin da heute auf was meiner Meinung nach seltsames gestoßen.
Ich habe in der Vergangenheit schon öfters Wordvariablen den Inhalt von Bytevariablen zugewiesen und korrekte Ergebnisse erhalten.
Heute war das aber anders.
Vielleicht auch deshalb weil in konkreten Fall die Wordvariable mit dem Wert 65535 (also &HFFFF) belegt wurde und in der Folge dann durch eine Funktion die einen Bytewert zurück gibt in nur im Lowbyte verändert wurde.
Bisher war ich eigentlich davon ausgegangen, dass bei einer derartigen Zuweisung die gesamte Variable betroffen ist.
Nur erhalte ich im vorliegenden Fall als Ergebnis nicht &H0001 sondern &HFF01 (dezimal 65,281).
Sprich das Highbyte der Wordvariable wird nicht beeinflusst.
Ist das ein Fehler oder erwarte ich zuviel und das Verhalten ist schon immer so und es fiel mir nur nicht auf, weil die Variablen üblicherweise in einem Programmablauf eher mit dem Wert Null vorbelegt werden?