Zitat Zitat von PicNick
Es wird IMMER eine Adresse über den Softstack übergeben

Byref die Adresse der Variablen selbst
byval die adresse einer Kopie der Variablen

welcher typ die variable ist, ist egal.

declare sub _nixis ( byval arg as irgendwas) ---> Kopie
declare sub _nixis ( byref arg as irgendwas) ---> direkt

"Byref" nimmt Bascom als default an, wenn nix angegeben wird

bedeutet:
das erstellen der Kopie ist ein Overhead (bei Literalen aber notwendig, denn vorher gibt's ja nix zum adressieren)

sub/func-Argumente, die mit "byref" übergeben werden, können auch von der Sub verändert werden

umgekehrt:
sub/func-Argumente, die mit "byval" übergeben werden, können von der Sub hemmungslos für private Zwecke vernudelt werden, ohne dass die eigentliche Variable verändert wird.

btw: Für die Kopien wird das "Frame" verwendet.


http://www.rn-wissen.de/index.php/Bascom_Inside
nun ja kopie und orginal aber im ersten beispiel ist ja nichts zu kopieren
und wo ist dann der unterschied von a as bite und byref a as byte ?

PicNick du hast es wahrscheinlichlich erklärt aber leider verstehe ich die Fachsprache nicht ganz