OT bitove polia a efektivita; Was: pointery C
Michal Gregor
a2x1nptda8 na email.cz
Středa Květen 22 22:43:11 CEST 2013
Proc vlasne C nepouziva promennou typu bit? V dobe vzniku bylo prece pameti
strasne malo.
Michal Gregor
-----Původní zpráva-----
From: Jan Waclawek
Sent: Wednesday, May 22, 2013 10:30 PM
To: HW-news
Subject: Re: OT bitove polia a efektivita; Was: pointery C
No, to moze byt jeden z pohladov; nemyslim si vsak, ze by taketo makro malo
byt efektivnejsie prelozene ako ekvivalent s bitfieldom. Dufal som, ze
pridete prave s takym niecim, ze na nejakej platforme sa s bitmi manipuluje
vyslovene neoptimalne - som zatazeny na v praxi nie prilis relevantne
benchmarky... ;-)
Prenositelnost... v kazdom pripade treba vediet, co clovek robi. Operacie
takehoto typu maju urcite svoje miesto tam, kde je potrebne zabezpecit
nejake fyzicke rozlozenie bitov vo vacsich celkoch, to asi ano; ale su
miesta, kde sa bitfieldy nepouzivaju kvoli tomuto (ale napriklad prave kvoli
setreniu miestom).
Teraz vyhoda bitfieldov: daju sa s nimi robit "normalne" operacie ako s
beznymi celociselnymi premennymi (samozrejme si treba davat pozor a
samozrejme sa nedaju robit hokusy-pokusy s pointermi), pouzivat ich ako
parametre vo funkciach, atd. S prislusnou davkou opatrnosti sa napriklad da
napisat program aj tak, ze sa optimalizuje podla moznosti cielovej
platformy - ak je malo RAM, pouziju sa "spakovane" bitfieldy, ak su nakladne
operacie na bitoch a je dost RAM, pouzije sa alternativna definicia typu
veduca k "normalnym" strukturam.
Takze zase je to len o tom, ze neexistuje univerzalne dobre riesenie a kazda
situacia ma ine optimalne riesenie.
Mimochodom, to makro je lepsie napisat takto (co zrejme viete, len ste to v
rychlosti odflakli):
#define neco(x) (((x) >> 3)&0x07)
wek
On Wed, 22 May 2013 22:02:43 +0200
Jaroslav Buchta <jaroslav.buchta na hascomp.cz> wrote:
> Uz jsem to dlouho nepouzival a vlastne ani nepotreboval, tak to berte
> spis jako namet k diskusi... Ale makro pro prislusnou bitovou operaci
> vyjde asi nastejno bez komplikaci s prenositelnosti - neco ve stylu
> #define neco(x) ((x >> 3)&0x07)
> Dne 22. 5. 2013 22:02, Jan Waclawek napsal(a):
> > A mate na toto myslenie aj nejake konkretne argumenty?
> >
> > wek
> >
> >
> > On Wed, 22 May 2013 21:47:52 +0200
> > Jaroslav Buchta <jaroslav.buchta na hascomp.cz> wrote:
> >
> >> Myslim, ze ta bitova pole jsou neco ve stylu usetrim 1 byte datove
> >> pameti za cenu 20 bytu programove pameti. Proste mi neprijde v soucasne
> >> dobe nejak efektivni to pouzivat...
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list