Tema: Re: Reikia pagalbos C#
Autorius: GP
Data: 2010-08-31 12:39:35
Nespejau atsakyti :)
mintis ta pati, cia ne C# o elementaraus C strukturu principai;

On 08/31/10 12:33, saimhe wrote:
>> typedef struct {   //32 bitu bool struktura
>>       BOOL bReady;
>>       BOOL bAuto;
>>       ...
>>       ...
>> } TankStatus ;
>>
>> TankStatus Tank;
>>
>> long StatusDWORD;
>>
>> StatusDWORD=0xFD89;
> 
>  Štai tas pats klasikinėmis priemonėmis be jokių # :
> 
> typedef union {
>    struct {
>        int bReady:1;
>        int bAuto:1;
>        .
>        :
>    } flags;
>    int raw;
> } TankStatus;
> .
> :
> Tank.raw=StatusDWORD;
> if (Tank.flags.bReady)
>    .
>    :
> 
>  Užtat bus non-portable tarp "big endian" ir "little endian"
> architektūrų ir
> panašiaias atvejais. Jei kartais reikėtų tvarkyti, su #ifdef pakanka
> aprašyti
> kitą TankStatus.flags versiją, kur bitai pateikti reikiama tvarka.
> 

-- 
GP