C Bitfields in D

Ali Çehreli acehreli at yahoo.com
Tue Dec 7 15:02:04 PST 2010


Stanislav Blinov wrote:

 >> But bitfields in C may not use the same alignments used by
 >> bitfields!() on DMD so I think you have to test the sanity of the
 >> whole thing for each combination of D compiler, operating system and C
 >> compiler.
 >
 > hm... what alignments are you talking about? bitfields template uses the
 >  smallest suitable type for all fields, which is uint for the above
 > struct. The trouble may come from bit order, mayhaps. bitfields
 > positions fields in LSb order.

There is almost no guarantee in C (and C++) on how the bitfields are 
layed out.

I had implemented a C++ template solution once just to overcome that 
lack of layout. We needed to have our bits layed out exactly in certain 
ways.

Ali


More information about the Digitalmars-d-learn mailing list