Re: Bitfields

From: Daniel Koepke (dkoepke@CALIFORNIA.COM)
Date: 09/26/97

On Fri, 26 Sep 1997, Andrew Helm wrote:

-+> They're not completely portable, though, and their only
-+> merit lies in the fact that they aren't limited to the
-+> size of a variable type like bitvectors.
-+A bit field is completely portable. A bit field is a part of
-+the ANSI C standard. Just don't rely on anything that is
-+implementation defined, and you'll be fine. As for the
-+size of bitfields not being limited: bullshit. A bitfield
-+can't be greater than 16 bits. (At least, not in a conforming
-+ANSI C program.)

Agreed that bitfields are a part of the ANSI C standard, but
that doesn't mean they're completely portable.  Many compilers,
primarily DOS/Windows based ones, choose different implementations
of standard things, and the like.

And you misunderstood what I said when I said a bitfield is not
limited by the size of a variable.  I meant the *number* of
bits you have in the structure is not limited by the size of a
variable.  In other words, you can have:

  struct bitfield {
    unsigned int bit0 : 1;
    unsigned int bit1 : 1;
    unsigned int bitN : 1;

well over 16 of them...

-+> Bitfield:
-+>   int bit0 : 1;
-+This should really be unsigned int or signed int to be

Oh, sorry, I should have made my quick little examples completely
portable across multiple operating systems.  <roll eyes>  Don't
get into this semantic bullshit, again, Andrew--it's annoying and
unnecessary.  Yes, they should be "unsigned" (if they're not then
setting them to 1 will actually set them to -1), but it's hardly
necessary for a simple example to conform.  But, to make you
happy, Andrew, the example I've included in this message uses
"unsigned int".

Daniel Koepke -:- -:-  [Shadowlord/Nether]

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/08/00 PST