This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: typeof and bitfields


Dave Korn writes:
 > 
 >   While we're on the subject, I've always been curious what on earth the meaning
 > of 
 > 
 > struct foo {
 >    int   bar : 1;
 > };
 > 
 > could possibly mean.  What are the range of values in a 1-bit
 > signed int?  Is that 1 bit the sign bit or the value field?  Can
 > bar hold the values 0 and 1, or 0 and -1, or some other set?  (+1
 > and -1,

That one.

 > maybe, or perhaps the only two values it can hold are +0
 > and -0?)  In a one bit field, the twos-complement operation
 > degenerates into the identity - how can the concept of signed
 > arithmetic retain any coherency in this case?

It's the ring of integers modulo 2.  In that ring,

  -1 == 1 (mod 2)
     ^ is congruent to

I don't think there's anything particularly weird about it from a
number theory point of view.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]