Mail Archives: djgpp/1998/01/14/07:04:11
On Wed, 14 Jan 1998, I wrote:
> On Tue, 13 Jan 1998, Nate Eldredge wrote:
>
> > Solution: Declare the bitfields as `unsigned'.
>
> I'm not sure this solution is indeed required. I think what Noam
> reported was due to the effect of `printf', and the actual value
> stored inside the variable was correct.
Sorry, I was wrong. The ANSI C Standard explicitly says that signed bit
fields of size N can be used to represent values in the range [0, 2^(N-1))
so when N is 1, you cannot represent 1. You need to make it unsigned, as
Nate suggested.
- Raw text -