bool test;
sizeof(test) = 1
if using VS 2010. Since every C++ data type must be addressable,
the "test" bool variable is 8-bits(1 byte).
My question is that does the "test" variable really occupy 1 byte in memory?
Is there any implementation skill that can make the bool data type occupy only one bit? If yes, can you give me an example?
bool test1[32]
(in VS 2010),
int test2
(in VS 2010)
Do test1
and test2
occupy the same memory?
Every element of test1
must be addressable. This implies that array test1
(that was created using bool test1[32]
) takes at least 32 bytes (1 byte per element).
If you want multiple boolean values to be stored in a single variable, use std::bitset
or std::vector<bool>
(but be aware that the latter is not really a vector of bools, it is a specialization designed to save space).
IIRC, C++11 also defines std::dynamic_bitset
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With