[elektro] Fw: C18 előfordító

Lajos Rancz lajos.rancz at gmail.com
Tue Jun 16 14:46:55 CEST 2015


Helló!

Ezt nem a preprocessor csinálja, hanem a fordító! De vonatkoztassunk el!
Tfh van egy olyan bonyolult számításod ami:

   - fordítási időben számítható lenne
   - futási időben túlságosan költséges a számítása (és felesleges is előző
   miatt)

Ezekre az esetekre nagyon jól jön, ha tudod szavatolni, hogy a kifejezés
kiértékelése megtörténik fordítási időben. Azért nem jó külön toolba rakni,
mert az egy csomó felesleges problémát behoz és sok esetben nem is járható
út.
Példát is hozok: konstans stringek hash számítása.


   - van vmi adat struktúrád, aminek elemeit stringekkel azonosítod mert
   így kényelmes
   - ennek az adatstruktúrának az elérését meg megint stringekkel szeretnéd
   megoldani
   - mindezt a lehető leggyorsabban

Ekkor három lehetséges irány van:

   - enum/define: az vele a probléma, hogy egy darab headerbe kell raknod
   az összes lehetséges értéket, nem tudod dinamikusan bővíteni
   - egy dictionary string kulccsal: nem lesz túl optimális, mert string
   compareket kell használni (vagy unordered_map-nél string hash számítást)
   - compile time számítod a hasht és ezt használod a mapban. Ez jó, csak
   szavatolnod kell, hogy compile time előáll a hash


üdv


2015. június 16. 14:28 elight írta, <elight at gmail.hu>:

> Azt igen,
> de hogy miért kell feltétlen az előfordítóra
> bízni függvények  kiszámítását, változók kezelésével,
> azt még  nem nagyon kapizsgálom.
> Emulálj neki egy szegmentált területet ,
> és azt  akkor használod amikor akarod.
> Akár kizárólag csak a modulok futásának
> kezdetekor. Ez egykét plus user függvény
> és csak abba a verzióba linkeled amelyikben
> ténylegesen indokolt.  Ahol nem ott nem létezik.
> Vagy nagyon kevés már a hely ilyesmire?
> Üdv István
>
> 2015-06-16 14:20 keltezéssel, Hofferek Attila írta:
> > Oké, tehát az elvet megértetted. Örülök.
> >
> > On 2015. 06. 16. 14:12, elight wrote:
> >> Akkor mégis csak valahogyan  dinamikusnak kell
> >> lennie a dolognak..
> >>
> >> Ebben segíthet egy jó rendszerterv..
> >> Vagy csak éppen ad hock fércelgesz valami meglévőt?
> > -----------------------------------------
> >            elektro[-flame|-etc]
> >
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list