[elektro] C-ben bit struktura kérdés

Moczik Gabor pm_levlista at progzmaster.hu
Thu Jun 12 10:20:47 CEST 2008


hg12345 wrote:
> A bit strukturák és a hozza tartozó define-k összekapcsolására van 
> szabványos megoldás. (nem találtam :-)
> 
> pl.:
> 
> union {
>           unsigned int A;
>           struct {
>              bit0:1;
>              bit1:1;
>              bit2:1;
>            }
>          } WORD;
> 
> #define WORDbit0      0
> #define WORDbit1      1
> 
> vagy 
> enum eWORD{WORDbit0=0,WORDbit1,WORDbit2};
> 
> WORD.A ^= 3<<WORDbit1;
> 
> A fenti megoldásra szeretnék egy olyat a bitstrukturából tudja kinyerni 
> a bit poziciót.
> 
> (((Akár a forditott megoldás is jó, hogy a #define-ból előállítja a 
> bitstrukturát, mondjuk ez kevésbó jó, mert sokkal macerásabb és 
> érthetetlenebb, föleg ha minden bitnek eltérő neve van)))


Nem teljesen ertem a feladatot. Miert kell ket kulonbozo elnevezest hasznalni?
WORD.A ^= 3<<WORDbit1;
Helyett miert nem jo a WORD.bit2^=1 ?

(meg egyebkent nem WORDbit2-t akartal irni?)

> Tudom létezik olyan C ami ismeri a bit szintű pointer, de erre nem 
> vágyom. Amit eltudnék képzelni forditási idöben is létező sizeof() 
> függvény ?

Tudomasom szerint mukodik forditasi idoben a sizeof() minden olyan dologra 
aminek ismert a merete forditasi idoben.

-- 
((( Móczik Gábor  )))--((( E~mail: "pm-01" @AT "progzmaster" .DOT "hu" )))
((( Skype: moczik )))



More information about the Elektro mailing list