OT moze sa v C zapisat viacero bitfieldov jednym vrzom?

Jan Waclawek konfera@efton.sk
Středa Únor 10 19:32:43 CET 2010


Ale ano, ja viem ze som blbec ;-)

Uz je to vyriesene - ako pan kolega Grepl pisal v http://list.hw.cz/pipermail/hw-list/2010-February/370982.html : zapisat sa to da, prelozit to prelozi, ale tak, ze blabla.a je plnych 8/16 bitov (podla toho aky rodicovsky typ sa zvoli); co asi nie je to co autor zamyslal.

A tiez existuje zapis ako to zapisat len s jednym zapisom rodicovskeho typu: treba tu dvojbodku a pocet bitov dat ku kazdemu identifikatoru.

Mne je jasne ze je to zla prax. 

Proste som sa z nejakych dovodov rozhodol to tak pouzit, a popalil som sa. 

Ale som sa aspon nieco naucil, nie? ;-)

wek

----- Original Message ---------------
>
>Ja bych rekl ze ne.
>  unsigned int a, b : 6;
>je to zdroj chyb. Za pul roku si vzpomenete ze potrebuje pamet. Podivate se do programu a ejhle "b" staci dva bity:
>  unsigned int a, b : 2;
>Ale co to "a"? A je pruser a clovek ladi a ladi a pak si po 14 dnech trha vlasy na hlave az na to prijde.
>
>Spravne to ma byt:
>  unsigned int a:6;
>  unsigned int b:6;
>
>Jeden krok jeden radek. Nesnazit se zbytecne "kompresovat" zdrojovy kod, vysledny program se tim nezkrati. Jen clovek bude z toho pekne zmateny. (Napriklad a = b*c+(d>>2)&x+y-a+b)



More information about the Hw-list mailing list