C rejtelmek / bitmezo teszt
Papp Zoltán
zombi at c2.hu
Thu Mar 1 08:44:49 CET 2007
Cs, Március 1, 2007 1:41-kor Fuzesi Arnold írta
> Idevágó kérdés:
>
> Adott egy bitmező, azt szeretném vizsgálni hogy valamelyik tagja más-e
> mint
> nulla.
>
> 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?
>
> Kösz,
> Arnold
A pointer szerintem működik, csak bájt vagy integer-szinten, egyszerűen
"össze-VAGY-olod" a bitmező bájtjait (vagy ha >8 bites a proci, akkor
talán az integereit), és ha az eredmény>0, akkor valamelyik bit>0.
Bár lehet, hogy ilyen szinten már érdemes egyből vizsgálni a >0 feltételt,
mert így egyből megvan az a bájt/integer, amiben van 1.
Avagy ha a bitmezőben lévő bitek flag-ként működnek (és te állítod őket
programból), akkor kinevezel egy Global Flag-et, amit szintén 1-be
állítasz, ha bármelyiket 1-be állítod.
Üdv
--
Papp Zoltán
OneWay Electronics - www.onewayelectronics.hu
Hangszerviz - www.hangszerviz.hu
--------------------------------- Hirdetés ---------------------------------
Mi a C2? http://mail.c2.hu
More information about the Elektro
mailing list