[elektro] c kerdes

Fuzesi Arnold arnold.fuzesi.lista at gmail.com
Sat Dec 6 21:47:37 CET 2008


Jogos.... inkabb igy... persze igy sem franko....

>> typedef struct{
>>  union{
>>  struct{
>>   uchar bit[8]: 1;
>>  }a;
>>  uchar A;
>>  }alarm[2];
>> }sys_stat;

Közben rájöttem h >>-el jobban jarok... :)

Ettol fuggetlenul ha vki tudja ne titkolja... erthetobb lenne a kod 
(szamomra :)).

kösz,
A.
----- Original Message ----- 
From: "Balázs Bámer" <bamerbalazs at gmail.com>
To: <elektro at tesla.hu>
Sent: Saturday, December 06, 2008 9:42 PM
Subject: Re: [elektro] c kerdes


>> Hogy tudnam ezt megvalósítani C-ül?
>>
>> typedef struct{
>>  union{
>>  struct{
>>   uchar bit: 1;
>>  }a[8];
>>  uchar A;
>>  }alarm[2];
>> }sys_stat;
>>
>>  for(loop0=ID_IN0;loop0<ID_IN3+1;loop0++){
>>   if(cfg.in[loop0].changed_state) sys_stat.alarm[0].a.bit[0]=1;
>>  }
>>
>> ami gond, a bit nevű bitmezőt szeretném tömbösíteni, címezni...
>
> Tippre sehogy. A ciklus helyesen így szólna:
> for(loop0=ID_IN0;loop0<ID_IN3+1;loop0++){
>  if(cfg.in[loop0].changed_state) sys_stat.alarm[0].a[0].bit=1;
> }
> viszont a
> struct{
>   uchar bit: 1;
> }a[8];
> nem egy bájtban vagy szóban csinál 8 bitet (ha ez volt a szándék),
> hanem lefoglal nyolc bájtot vagy szavat (vsz implementációfüggő), és
> mindben lesz egy bit nevű bit.
> Biteket logikai műveletekkel és << operátorral lehet címezni.
>
> szia: Balázs
> -----------------------------------------
>          elektro[-flame|-etc] 



More information about the Elektro mailing list