C rejtelmek / bitmezo teszt

Fuzesi Arnold arnold.fuzesi.lista at gmail.com
Thu Mar 1 12:27:19 CET 2007


Oké, csak most tartok 15 bitmezőnél (nem mind 1 bites, integernel nagyobb az 
egész), és ez még bőven nőni fog.
Elég tréül néz ki ha vagyolom, illetve ha egy új taggal bővül, akkor lehet 
egy csomó helyre adminisztrálni, pl bele ebbe a vagy kapcsolatba.

Közben rájöttem a pointeremmel az a gond, hogy ha nem n*8 bit szeles a 
bitmező, hanem pl n*8bit-2, akkor a maradek 2 bit helyen fogalmam nincs 
mivan...

A.
----- Original Message ----- 
From: "Papp Zoltán" <zombi at c2.hu>
To: <elektro at tesla.hu>
Sent: Thursday, March 01, 2007 8:44 AM
Subject: Re: C rejtelmek / bitmezo teszt



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


-----------------------------------------
          elektro[-flame|-etc] 



More information about the Elektro mailing list