Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: zuviele Gosub Kategorie: Programmierung Basic (von Achim - 29.12.2004 13:36)
 Als Antwort auf zuviele Gosub von Michael - 29.12.2004 12:13
Hi,

> in meinem programm sind 3 gosubs enthalten, soweit so gut.
> nach einer fehlerabfrage wird abgebrochen und ans programmanfang gesprungen.
> jetzt kommt es so glaube ich an einen überlauf der gosubs.

Das kann passieren, wenn Du innerhalb der Unterroutine mit goto an den Programmanfang springst, also bevor das "return" erreicht wird.  Etwa so:


#start
...
gosub sub1
...
end

#sub1
...
if Fehler_Bedingung then goto start
...
return


Ist das bei Dir so?

> ich hoffe das war verständlich.
> kann man am programmanfang irgendwie die gosubs resetten?

Nein. Du darfst es so einfach nicht machen. Du könntest Dir in der Unterroutine ein Bit-Flag setzen, was Du nach dem Rücksprung mit return im Hauptprogramm abfragst, oder Du könntest die Unterroutine einen booleschen Wert zurückgeben lassen, etwa ON im Erfolgsfall und OFF im Fehlerfall:


#start
...
if not sub1 goto start
...
end

#sub1
...
if Fehler_Bedingung then return OFF
...
return ON


Bye
 Achim

 Antwort schreiben

Bisherige Antworten:

Re: zuviele Gosub (von Michael - 29.12.2004 15:16)