[elektro] C kérdés plusz

Acs Gabor agabor at electrodesign.hu
Mon May 19 14:18:24 CEST 2008


Akkor Szerinted ki lehet lépni függvényből? Mert Sanyi szerint nem. Vagy ez 
is implementációfüggő?
Erős a gyanúm, hogy amit eredetileg kérdeztél, hogy for ciklus, vagy if 
szerkezetbe bekavar egy vezérlésátadás (pl switch), az is okozhet ilyen 
stackeléshez hasonló problémát. Merthogy beugráskor a szerkezet eleje, 
kiugráskor a vége, a lezárása hiányzik. Aztán lehet, hogy van olyan okos a 
fordító, hogy ezt jelzi, pl. if belsejébe ugráskor talál egy csukózárójelet, 
aminek nem volt nyitója. De ennek csak akkor van értelme, ha külön körben 
dolgozza fel az if és külön körben a switch dolgait. Ha igen, akkor lehet, 
hogy ő fogja megcsinálni a kód ismétlést, amit javasoltam Neked, hogy ne 
legyen kavarodás a kettő átfedéséből.


Gábor

----- Original Message ----- 
From: "hg12345" <hg12345 at freemail.hu>
To: <elektro at tesla.hu>
Sent: Monday, May 19, 2008 1:29 PM
Subject: Re: [elektro] C kérdés plusz


Hi!

A goto-t ugyan úgy kezeli mint az asm.  Ha kilépsz a függvényból akkor
minden ottmarad a stack-ken!

> Ez eddig is világos volt. Én olyasmire gondoltam, hogy írsz pl. egy
rekurzív
> függvényt. Az végrehajtja magát 150-szer, majd teljesül valami
feltétel, és
> kiugrasz bel&#337;le egy gotoval. Biztos, hogy valahol épít egy stack-et a
> fordító, ha nem is a cpu stack területér&#337;l van szó. Ilyenkor ottmarad
egy
> rakás adat. Következ&#337; meghíváskor detto, aztán megint. De Palasik
Sanyi azt
> mondta, hogy függvényb&#337;l nem lehet gotoval kilépni. Ugyan goto-t
én legalább
> 20 éve nem használtam (assemblyn kívül), de elhiszem neki, így
válasz is
> lett a kérdésre.
>
>
> Gábor
>
> ----- Original Message ----- 
> From: "Papp Zoltán" <zombi at c2.hu>
> To: <elektro at tesla.hu>
> Sent: Monday, May 19, 2008 8:51 AM
> Subject: Re: [elektro] C kérdés plusz
>
>
> 2008.05.17. 00:00:45 dátumon Palasik Sandor
<palasik at mail.datanet.hu> írta:
>
> >> És ilyenkor mi van a stack-el? A fordító annyira okos, hogy azt is
> >> rendbeteszi? Ezzel nem kisérleteznék.
> >
> > Függvénybe nem lehet goto-val beleugrani, sem kilépni bel&#337;le.
Máshol nem
> > játszik a stack.
>
> Illetve a függvény belépéskor és kilépéskor a használt regiszterek
> értékeit a stackbe menti le a program, de attól még, hogy te egy
ciklusa
> kell&#337;s közepébe teszel egy RETURN-t, ott lefordítva ASM-ben egy
GOTO lesz
> a fgv. végén található rutinra, amelyik a stackb&#337;l visszaszedi a
> regiszterek értékeit, és csak utána lesz az assembly RET utasítás.
>
> Érdemes nézegetni a lefordított kódokat, sok minden megvilágosodik.
>
> -- 
> Papp Zoltán
> OneWay Electronics Kft
> Hangszerviz
>
> -----------------------------------------
>           elektro[-flame|-etc]
>
>  _____________ NOD32 3107 (20080518) Információ
_____________
>
> Az üzenetet a NOD32 antivirus system megvizsgálta.
> http://www.nod32.hu
>
>
> -----------------------------------------
>           elektro[-flame|-etc]
>

_______________________________________________________
Szerintem ezt megéri megnézni: http://eduverzum.educomm.hu ! Mi a cégnél már 
így tanulunk &#8211; ki angolul, ki németül. Próbáljátok ki ti is!
http://ad.adverticum.net/b/cl,1,6022,112478,180889/click.prm

-----------------------------------------
          elektro[-flame|-etc]

 _____________ NOD32 3107 (20080518) Információ _____________

Az üzenetet a NOD32 antivirus system megvizsgálta.
http://www.nod32.hu




More information about the Elektro mailing list