arbitrary bitsize of variables
Anders F Björklund
afb at algonet.se
Sun Sep 30 01:13:31 PDT 2007
Daniel Keep wrote:
> dominik wrote:
>> Thanks guys, too bad bitfields are not supported - is there a special reason
>> why bitfields are not supported? I know there is a danger with them for
>> direct bitwise manipulation, but I find them very useful, and necessary -
>> since I'm doing alot of direct manipulation on arbitrary bitfield size types
>> (imaging and cryptography).
> Basically, we used to have a 'bit' type which had two literals: true and
> false. The problem was that bits were different from every other type
> in that you couldn't reliably take the address of one. Things like a
> bit field's offsetof property wouldn't make sense at times.
The bit type wasn't very usable for bitfields either, since it would
align to a 32-bit boundary and worked differently between platforms...
It also had some strange non-integer properties, so it was better
for everyone involved when it just assumed the bool type name again.
The D programming language overview instead had this to say:
"Bit fields of arbitrary size.
Bit fields are a complex, inefficient feature rarely used."
http://www.digitalmars.com/d/1.0/overview.html "Features To Drop"
So one needs to wrap the bitfields in bigger types and do the shifting
oneself, as was shown by previous posters. Tedious, but not very hard ?
--anders
More information about the Digitalmars-d-learn
mailing list