Seite 1 von 1

Übergabewerte in Prozeduren ändern *gelöst*

Verfasst: 08.10.2008 03:01
von Regenduft
Guten Morgähn,

Ich habe mal mit den Übergabewerten von Prozeduren herumgespielt und herausgefunden, dass diese IN der Prozedur verändert werden können.
Aber: Ist das sicher? Ist das Pfusch?

Hier ein kleines Beispiel, damit Ihr wisst wovon ich rede:

Code: Alles auswählen

Procedure Test(a$)
  Debug a$
  a$ = "Aboriginal! (vermutlich mit Digeridoo)"
  Debug a$
EndProcedure

Test("Original!")

Verfasst: 08.10.2008 03:07
von STARGÅTE
klar ist das sicher ...

a$ ist in der Procedure wie eine "eigene" Variable und hat nix mehr mit irgendetwas außerhalb der procedure zu tun.

Hier ein Beispiel:

Code: Alles auswählen

Procedure Test(a$) 
 Debug "INNEN: "+a$
 a$ = "Aboriginal! (vermutlich mit Digeridoo)" 
 Debug "INNEN: "+a$
EndProcedure 

a$ = "Original!"
Test(a$)
Debug a$
was du in der Procedure mit a$ machst ist genauso normal wie im Hauptprogramm, nur eben unbeeinflusst von außen.

Verfasst: 08.10.2008 03:25
von Regenduft
Danke für die schnelle Antwort!

Da bin ich ja beruhigt :wink:
Hatte die Sorge, dass die Übergabe "fixed" stattfindet und ich dann irgendwelche Speicherbereiche überschreibe.

Verfasst: 08.10.2008 03:44
von ts-soft
Regenduft hat geschrieben:Danke für die schnelle Antwort!

Da bin ich ja beruhigt :wink:
Hatte die Sorge, dass die Übergabe "fixed" stattfindet und ich dann irgendwelche Speicherbereiche überschreibe.
fixed besser bekannt als ByRef, in PB nur als Pointer möglich.

PB benutzt im allgemeinen ByVal