[elektro] C kérdés plusz
Papp Zoltán
zombi at c2.hu
Mon May 19 14:03:28 CEST 2008
2008.05.19. 12:29:08 dátumon Acs Gabor <agabor at electrodesign.hu> írta:
> 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őle egy gotoval. Biztos, hogy valahol épít egy stack-et a
> fordító, ha nem is a cpu stack területéről van szó. Ilyenkor ottmarad egy
> rakás adat. Következő meghíváskor detto, aztán megint.
Ez le van írva az ANSI C szabványban, hogy csak függvény tözsön belül
ugorhatsz (azaz más fgv-re nem), továbbá csak olyan blokkba (blokk =
kapcsos-zárójelek közti utasítások) ugorhatsz, amely helyen nem lett újabb
változó definiálva ahhoz képest, ahonnan elugrottál. Azaz pl. blokkon
belül ugorhatsz, de egy blokkba (blokkból) csak akkor ugorhatsz be (ki) ha
ott újabb változó nem lett definiálva.
Azaz legjobban pl. többszörös ciklusból való kilépésre alkalmas a goto,
ahol a ciklusokon belül nem definiálsz újabb változókat (azaz pl. for(;;)
ciklusban sem definiálhatsz újabb változót!).
Bővebben:
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
6.8.6.1. fejezet
> De Palasik Sanyi azt
> mondta, hogy függvénybő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.
Így is van. ld. szabvány.
Üdv
--
Papp Zoltán
OneWay Electronics Kft
Hangszerviz
More information about the Elektro
mailing list