OT moze sa v C zapisat viacero bitfieldov jednym vrzom?

Michal HW michalgregor@centrum.cz
Středa Únor 10 19:12:14 CET 2010


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)

Michal Gregor

_____________________________________________________________
> Od: "Jan Waclawek" <konfera@efton.sk>
> Komu: hw-list@list.hw.cz
> Datum: 10.02.2010 15:44
> Předmět: OT moze sa v C zapisat viacero bitfieldov jednym vrzom?
>
>Mam taku "ceckarsku" otazku, len som to slovo nechcel dat do subj. aby zase neboli problemy s manzelkami a tak ;-)
>
>
>Moze sa zapisat viacero bitfieldov v jednom structe takto:
>struct blabla {
>  unsigned int a, b : 1;
>};
>
>alebo ich treba rozpisovat do osobitnych riadkov:
>struct blabla {
>  unsigned int a : 1;
>  unsigned int b : 2:
>};
>?
>
>Nejako neviem najst v C99 kapitolu ktora by to zakazovala resp. potvrdzovala.
>
>Dakujem
>
>wek
>
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>


More information about the Hw-list mailing list