Eigentlich nicht. Da schreibt man:
return value;
Und wenn man nur
return;
schreibt, wird gar nichts zurückgegeben. Und wenn man den Returnwert nicht gleich beim Funktionsaufruf in eine Variable packt, ist er weg.
var = function();
Wenn man in einer Hochsprache programmiert, darf es einen nicht interessieren wie oder wo der Compiler oder Interpreter Variable abspeichert. Ob der Prozessor überhaupt Register oder einen Stack hat, muß dem Programmierer in der Hochsprache vollkommen egal sein. Es geht ihn nichts an, es sei denn er programmiert einen Compiler. Das einzige. was zählt ist, daß sich Compiler oder Interpreter an die Sprachdefinition hält. Das ist der Sinn einer Hochsprache.Ich finde es halt nicht schön, einen Rückgabewert in r16 zwischenzuspeichern. Auf dem Frame wäre genug Platz.
Das Problem bei BASIC ist, daß in der ürsprünglichen Sprachdefinition lokale Variable und Funktionen mit Returnwerten nicht vorkommen. Sie sind bei den jeweiligen BASIC-Versionen nachträglich angestrickt. Das ist mal besser, mal aber auch schlechter gelungen. Nicht umsonst wird BASIC als Programmiersprache auch nicht so recht ernst genommen.
MfG Klebwax
Lesezeichen