Die Verwendung von Byval/Byref habe ich gerade durch Ausprobieren verstanden:
Diese Variante verändert beim zweimaligen Schieben der übergebenen Variable a ebenfalls die globale (Ursprungs-) Variable x, da ja die Variable gar nicht "real" an die Funktion übergeben wurde, sondern nur die Adresse der Variable x. Das ist warscheinlich schnell und speichersparend, aber in diesem Fall doof und unerwünscht.Code:Dim X as Byte Dim Ergebnis as Byte Declare Function abc (a as Byte) as Byte Do Ergebnis = abc(x) Loop Function abc (a as Byte) Shift a , left , 2 abc = a End Function End
Mit der Verwendung von byval wird x einfach kopiert und dieser Klon wird dann in der Funktion geschoben und wieder zurückkopiert.
Dazu noch eine Frage: Wird der Speicher nach verlassen der Funktion wieder freigegeben?
Schön langsam wirds ja...![]()







Zitieren
Lesezeichen