PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Unterschiede Sub/Function und Sprünge innerhalb davon ?



JoeM1978
12.01.2013, 12:12
Ich hab heute in einem Artikel gelesen,

Unterprozeduren und Funktionen sind nahezu identisch. Der Unterschied ist, dass eine Funktion einen Wert zurückgeben kann und eine Unterprozedur nicht.

Was mich etwas verwirrt... wenn ich eine SUB declarieren und Variablen ByRef übergebe, hab ich doch auch werte, die ich zurückgeben kann ?


Und weiter hab ich nichts konkretes dazu finden können, inwiefern es problematisch oder überhaupt möglich ist innerhalb einer SUB oder FUNCTION
z.b. Sprungmarken zu setzen um dann mit GOTO zurückzuspringen.

Hat damit jemand erfahrung oder kann mir wer sagen, wo genau ich das nachlesen kann ?

Besserwessi
12.01.2013, 12:37
Das zurückgeben von Werten über per ByRef übergebenen Variablen ist natürlich möglich. Der Unterschied zwischen Unterprogramm und Funktion ist auch mehr die Frage wie sie aufgerufen werden: einmal als Befehl, und einmal für einen Rückgabewert, ähnlich wie interne Funktionen wie z.B. Sin().


Solange man innerhalb der Funktion oder Sub bleibt sind Sprünge per GOTO kein Problem. Nicht erlaubt sind aber Sprünge aus dem Hauptprogramm per GOTO in eine Funktion/Sub oder andersherum aus einer Funktion ins Hauptprogramm. Sofern da Compiler da nicht schon meckert gibt das in aller Regel Fehlerhaften Code. Auch Sprünge (per Goto) zwischen verschiedenen Funktionen / Unterprogrammen sollte man besser nicht machen, auch wenn es in einigen Fällen funktionieren könnte - das kann aber auch sehr schwer zu findende Fehler verursachen.

JoeM1978
12.01.2013, 14:55
Danke, dann ist mir das soweit klar.