C rejtelmek / bitmezo teszt
Moczik Gabor
pm at progzmaster.hu
Thu Mar 1 15:28:19 CET 2007
Fuzesi Arnold wrote:
> union-nal fapados a dolog, mert ahogy bővül a mező kézzel kell a uniont is
> hozzáállítgatni.
> Illetve sizeof-al lehetne bűvészkedni, de ha már pl. 80 bites a bitmezőm
> összesen, akkor nem lesz hozzá elég széles egész változó amit egyben tudnék
> vizsgálni hogy az nulla-e.
>
> Hogyan elegáns?
> Simán egy pointerrel végigszaladni sizeof(bitmező)-ig?
Nem mondtad, mire es hogyan kell hasznalnod, ettol nagymertekben fugg, hogy
mi a hatekony megoldas.
Hogy kezzel kell ezt-azt hozzaigazitani, azt nehez lesz elkerulni, ha
forditasi idoben akarod allokalni a teruletet.
Ha elszorva itt-ott vannak a bitek beallitva, es ezt valahol egy az egyben
le kell ellenorizni, akkor szerintem ugy a leggyorsabb, ha folytonos
teruleten allokalod a biteket, es ezt a proci altal egyben kezelheto
darbokban olvasod ki.
A teruletet meretre kell igazitani, tehat ha mondjuk 90 bited van, es 16
bites a proci, akkor 96 bitet kell foglalni. A maradek 4 bit senkit nem
zavar, inicializalasnal 0-ra allitod.
(nemelyik fordito alapbol tudja a padding-et, tobbnyire #pragma-val
engedelyezheto/tilthato).
Ha tobb helyen kell vizsgalni, akkor tedd fuggvenybe vagy macro-ba a
vizsgalo ciklust.
A nulla/nem-nulla eldontese altalaban 1 gepi utasitara fog leforditodni,
szoval meg gyors is lesz.
Ha agyon kell optimalizalni, akkor olyan ciklust kell irni, ami nem AND-olja
a byte-okat, hanem az elso nem-nulla utan ki is ugrik.
--
((( Móczik Gábor )))--((( pm -> @ -> progzmaster -> . -> hu )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
More information about the Elektro
mailing list