upvote
The object it's inside will still take up at least one byte.

    sizeof(struct {bool a:1;}) == sizeof(char);
reply
Amortization.

If one Boolean must be a byte then 8 must be eight bytes. Which is not true. A boolean can be 1/8th of a byte which is a meaningful distinction.

reply
3^5 is 243 so one could also call an optional Boolean 1/5th of a byte, though 1/4 is so much simpler to read and write.
reply
Um, no. Please show me how you can fit 255 possible states in something smaller than a byte by using bitfields.
reply
I was quoting the first paragraph, where it says a single normal bool takes a byte.
reply