>and that it takes up one byte of memory
You can make them smaller using bitfields in C.
The object it's inside will still take up at least one byte.
sizeof(struct {bool a:1;}) == sizeof(char);
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.
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.
Um, no. Please show me how you can fit 255 possible states in something smaller than a byte by using bitfields.
I was quoting the first paragraph, where it says a single normal bool takes a byte.
The object it's inside will still take up at least one byte.
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.
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.
Um, no. Please show me how you can fit 255 possible states in something smaller than a byte by using bitfields.
I was quoting the first paragraph, where it says a single normal bool takes a byte.