GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2008-Oct-01

Title: BYREF - Frage
Post by: WPShadow on 2008-Oct-01
Hi!

Kurze allgemeine Frage: Ist es sinnvoll eine struktur folgendermaßen zu machen?

Code (glbasic) Select

FUNCTION main:
local bla
    window1(bla)
    PRINT bla, 0, 0
...
ENDFUNCTION


FUNCTION window1: BYREF bla
    window2(bla)
ENDFUNCTION

FUNCTION window2: BYREF bla
    bla = 5
ENDFUNCTION



Macht das so Sinn oder sollte man die Variablennamen zwischendurch abändern bzw. dort an andere lokale Variablen weiter geben? (bla --> (bla an bla2 übergeben) --> byref bla2 usw.

GLG

W.
Title: Re: BYREF - Frage
Post by: Schranz0r on 2008-Oct-01
Macht keinen Sinn...
Zumindest für mich nicht, mach das ein paar hundert mal und du hast das totale Kaos.
Title: Re: BYREF - Frage
Post by: WPShadow on 2008-Oct-01
Also macht es mehr Sinn die Werte mit verschiedenen Variablennamen zu übergeben, oder?
Title: Re: BYREF - Frage
Post by: Quentin on 2008-Oct-01
BYREF macht eigentlich nur dann Sinn, wenn du mehr als einen Funktionsparameter innerhalb der Funkion ändern willst. Bei nur einem Parameter nutze lieber RETURN

Code (glbasic) Select

FUNCTION main:
    LOCAL bla
    bla = window1(bla)
    ....
ENDFUNCTION

FUNCTION window1: bla
    RETURN window2(bla)
ENDFUNCTION

FUNCTION window2: bla
    RETURN 5
ENDFUNCTION


Instanzen von TYPEs oder ARRAYs werden ja eh standardmäßig BYREF übergeben, wenn ich das richtig in Erinnerung habe.
Title: Re: BYREF - Frage
Post by: Schranz0r on 2008-Oct-01
arrays ;)
Title: Re: BYREF - Frage
Post by: Quentin on 2008-Oct-01
Instanzen von TYPEs auch ;)

Code (glbasic) Select

TYPE t_test
x; y
ENDTYPE

LOCAL s_test AS t_test


change_test(s_test)
PRINT "s_test.x: " + s_test.x, 0, 0
PRINT "s_test.y: " + s_test.y, 0, 20
SHOWSCREEN
KEYWAIT


FUNCTION change_test: p_test AS t_test
p_test.x = 5
p_test.y = 10
ENDFUNCTION
Title: Re: BYREF - Frage
Post by: WPShadow on 2008-Oct-01
Ok, ich glaube, langsam bekomme ich ein bißchen Verständnis dafür! Die Vermutung zu verstehen ist noch nicht ganz kapiert, aber langsam vermute ich richtig zu verstehen...