Zitat Zitat von for_ro Beitrag anzeigen
Hallo Thomas,
dein Wissensstand ist vollkommen in Ordnung.
Eine Sache hierzu: Es funktionierte zwar, war aber manchmal zu langsam und zu unübersichtlich.
Durch die Verwendung von Subs oder Funktionen wird es nicht schneller, im Gegenteil, du bekommst etwas Overhead.
Übersichtlicher wird es auf jeden Fall und daher ist die Verwendung sicherlich richtig.
Mit langsam habe ich mich etwas unglücklich ausgedrückt: Ich meinte das Schreiben des Programms an sich, nicht die Ausführgeschwindigkeit. Sry.

Zitat Zitat von for_ro Beitrag anzeigen
Ich würde grundsätzlich vermeiden, für eine lokale Variable den gleichen Namen zu verwenden, wie für eine globale.
Ein Fehler von MCS beim Programmieren des Compilers und schon wird der falsche Wert verwendet. Ich meine mich sogar zu erinnern, dass es das auch schon einmal gegeben hat im Zusammenhang mit gleichen Namen.
Also geht es, ist aber furchtbar böse und unübersichtlich - das habe ich mir fast schon gedacht.
Wie verhält es sich mit zwei einzelnen Funktionen, die beide als Übergabevariablen A und B haben? Da sie lokal sind, wäre das denkbar?

Zitat Zitat von for_ro Beitrag anzeigen
Den "Nachteil" von ByRef hast du ja schon gesehen. Wenn man darum weiß, ist es allerdings eher ein Vorteil.
Arrays kannst du übrigens gar nicht anders übergeben, da bei ihnen nur die Startadresse übergeben und nichts kopiert wird.
Strings werden mit ByVal kopiert, aber du kannst dir vorstellen, dass dabei einiges an Zeit draufgeht -> Overhead.
Es wird übrigens nichts "zurückkopiert".
Achso: Die lokale Variable wird dann ja sowieso entfernt da die Prozedur/Funktion verlassen wird.

Zitat Zitat von for_ro Beitrag anzeigen
Der Speicher wird beim Verlassen der Funktion wieder freigegeben.
Zu beachten ist noch, dass die lokalen Variablen nicht mit 0 oder "" vorbelegt werden. Sie enthalten einfach das, was beim letzten Verwenden der Speicherzelle dort stand.
Auch beim definieren einer lokalen Variable mit LOCAL?

Danke nochmals für die Hilfe!