[elektro] C kérdés plusz
hg12345
hg12345 at freemail.hu
Mon May 19 16:35:50 CEST 2008
A cimkékkel kapcsolatban igazad van!
De a goto-val ennél sokkal több kárt is lehet csinálni :-() a C nyelv és a
fordító támogatásával. :-().
A goto ugyan az mint asm-ben, a C cimkék lexikális érvényességével
játszik, ha tud! A cimkék lexikális érvényessége csak a függvényen
belül érvényes. Ez alól minden a LINKER által generált cimek (abszolut
linker cimkék (cimek) és a függvény belépési pontok)
Ha csinálsz egy kiszámított goto utasítást ezzel akarhová ugorhatsz a
megengedett címtartományon belül, vagyis kitudsz lépni a függvényből
a stack helyreállítása nélkül, gondolom.
pl.:
#define RESET goto *((void*)0);
Ez alapján bármi kivitelezhető:
pl.:
static void * ff[]={ &&f1, &&f2, &&f3};
majd
goto **ff[2];
A fenti technikával azonos stack foglalású függvények között lehet ide-
oda ugrálni, és a végén jó is lépnek ki, de csak egyszer kell téveszteni
és borul minden.
Azért, ezeket nem ajánlanám abszolut kezdöknek és haladóknak se :-(.
> hg12345 wrote:
> > A goto-t ugyan úgy kezeli mint az asm. Ha kilépsz a függvényból
akkor
> > minden ottmarad a stack-ken!
>
> Nem marad ott, mert nem lehet kilepni vele a fuggvenybol.
>
> --
> ((( Móczik Gábor )))--((( E~mail: "pm-01"
@AT "progzmaster" .DOT "hu" )))
> ((( Skype: moczik )))
>
> -----------------------------------------
> elektro[-flame|-etc]
>
_______________________________________________________
Szerintem ezt megéri megnézni: http://eduverzum.educomm.hu ! Mi a cégnél már így tanulunk – 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
More information about the Elektro
mailing list