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