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: GOSUB Verschachtelung Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von GeKue - 24.05.2011 23:55)
 Als Antwort auf Re: GOSUB Verschachtelung von Olaf - 24.05.2011 16:55
GeKue nutzt:  Open-Mini, Open-Midi, Open-Macro
Hallo Olaf,

danke für die Antwort - letztlich aber das Gleiche. Um die Verschachtelung (Funktionen werden m.E. wie Unterprogramme behandelt, d.h. die Rücksprungadresse wird im gleichen Adressraum wie bei den GOSUB's abgelegt und der Adressraum ist endlich...) fehlerfrei auf die von Dietmar festgelegte Größe zu begrenzen muß man das fertige Programm nochmal sauber "zu Fuss" analysieren und dies ist halt lästig...

Beste Grüße, GeKü
************
 
> Hallo GeKü
>
> so war das bei mir am Anfang auch...
>
> > bei umfangreichen Programmen kann es (zumindest bei mir....) leicht zur unsauberen Programmierung der erlaubten GOSUB-Verschachtelungstiefe kommen. Das Auffinden solcher Fehler ist dann ziemlich lästig/zeitaufwendig.
>
> .. irgendwann hatte ich alles so verschaltelt das eine Fehlersuche so ziemlich unmöglich wurde!! ;-)
>
> Um den ganzen Durcheinander abzuhelfen nutze ich eigentlich fast gar keine GOSUB's oder GOTO's mehr!
> Das ganze geht einfacher (jedenfalls für mich ), wenn man FUNKTIONEN benutzt (habe ich von der SPS-Programmierung übernommen), also quasi kleine Unterprogramme die je nach Bedarf aufgerufen werden! Wird auch übersichtlicher und Du kannst die einmal geschriebenen Unterprogramme einfach für andere Programme nutzen!
>
> Hier mal ein Beispiel:
>
> DEFINE a,b,c BYTE
>
> a=10
> b=1
>
> #hauptprogramm
>
> print a
>
> if a>0 then
>    FC_a_plus_b(22)
> end if
>
> print a
> ....
>
> goto hauptprogramm
>
> 'Funktion a+b und Vergleich mit c (=Übergabewert)
> FUNCTION FC_a_plus_b (c)
>   a=a+b
>   if a>=c then
>      a=0
>   end if
>
> RETURN
> END FUNCTION
>
>
> So habe ich jetzt mehrere Funktionen mit oder ohne Übergabe geschrieben z.B.:
> Daten  speichern, Printfunktionen, Berechnungen, Daten mit Zeigern bearbeiten usw. !
>
> So läst sich auch der "Fehlerteufel" besser beseitigen!
>
>
> Ich hoffe ich konnte Dir eine kleine Hilfe geben??
>
> Viele Grüsse
> Olaf

 Antwort schreiben

Bisherige Antworten: