[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