Однобайтовый бул. Зачем?

В C ++, почему bool требует один байт для хранения true или false, где для этого достаточно всего одного бита, например 0 для false и 1 для true? (Почему Java также требует один байт?)

Во-вторых, насколько безопаснее использовать следующее?

struct Bool {
    bool trueOrFalse : 1;
};

В-третьих, даже если это безопасно, поможет ли вышеуказанная полевая техника? Поскольку я слышал, что мы экономим место там, но все же код, сгенерированный компилятором, для доступа к ним больше и медленнее, чем код, сгенерированный для доступа к примитивам.

Ответы на вопрос(5)

Ваш ответ на вопрос