[elektro] C kérdés

hg12345 hg12345 at freemail.hu
Thu Jan 31 16:24:05 CET 2008


inline létezik a forditóban, de bármit csinálok marad a szubrutin hivas 
és vele együtt a hasznalatos regiszterek mentése.
az inline funkcioval hatásával azonos lenne a macro definialas, mind két 
esetben a szubrutin anyiszor kerül a programba ahányszor meghivom 
de nem ezt ha lehet elkerülném.

Röviden valoszinuleg a C nem ismer olyan modosítot, mely teljesen 
atlatszova teszi a void foo(void) subrutin hivást teszöleges számú 
változót hasznáva benne.

koszi az eddigi otleteket

 
> hg12345 írta:
> > Köszönöm a válaszokat, de nem erre gondoltam.
> > 
> > - naked: sajnos PIC24/dsPIC esetén nem él, de nem is jó (AVR és 
tsa.)
> > - sajnos nem IAR-t használok :-(
> > - A feladat nincs alul méretezve, ill ami szük az nem a uC 
> > teljesítményétől függ.   (Nem felejtő memória kezelés...)
> > 
> > Lehet, hogy rosszul fogalmaztam meg a problémámat.
> > Adott egy IT kezelés ami szubrutint hív, a szubrutin használ 1-2 
> > regisztert, de ha olyan szubrutint hivok ami nem tartalmaz semmit, 
> > csak pl egy  volatile NOP-t, akkor is elmenti a C-ben általánosan  
> > használt regisztereket, még optimalizálásnál is. Ha nincs szubrutin 
> > hivás, akkor csak azokat a regisztereket menti, amiket az IT-ben 
> > használ. (valószínüleg nem találtam meg mélységi szubrutin 
> > optimalizáció flagjét)
> > 
> > amit szeretnék egy olyan function modosító, mely hatására a belső 
> > regisztereket saját maga menti, (nem az IT!), és ez alapján az IT 
> > teljesen átlátszónak itéli rutint, és az IT nem menti fellesleges 
> > regisztereket.
> 
> Inline van ebben a c fordítóban? Ami fordítási időben behelyettesíti a 
> függvényhívást a függvény törzsével?
> 
> -----------------------------------------
>           elektro[-flame|-etc]
> 

________________________________________________________
Megrendelhető a Harry Potter 7. kötete magyarul! Rendelje meg és már szombaton kézhez veheti!
http://www.bookline.hu/control/news?newsid=1020&affiliate=frehp7kar4711



More information about the Elektro mailing list