Bajt jednobajtowy. Czemu?

Dlaczego w C ++ bool wymaga jednego bajtu do przechowywania wartości true lub false, gdzie wystarczy jeden bit, np. 0 dla false i 1 dla true? (Dlaczego Java wymaga również jednego bajtu?)

Po drugie, o ile bezpieczniej jest korzystać z poniższych?

struct Bool {
    bool trueOrFalse : 1;
};

Po trzecie, nawet jeśli jest to bezpieczne, czy powyższa technika terenowa naprawdę pomoże? Odkąd słyszałem, że oszczędzamy miejsce, ale wciąż generowany jest kod kompilatora, aby uzyskać do nich dostęp, jest większy i wolniejszy niż kod generowany w celu uzyskania dostępu do prymitywów.

questionAnswers(5)

yourAnswerToTheQuestion