Wyrównywanie tablic w pamięci - co w przypadku tablic boolowskich?

0

Tablica elementów typu prostego wyrównana jest w całości wg rozmiaru typu składowego - nie zawiera dziur.

cyt. za http://www.mimuw.edu.pl/~marpe/arch/akrd.pdf (23 strona).

Jasne. Ale, co jeśli mamy tablicę booleanów?
Jak rozumiem, boolean tak naprawdę zajmuje jeden bajt (nie bit), a więc - tablica będzie wyrównana do 1 bajta, czy tak?
To teraz pytanie - jeśli rozmiar booleana to 1 bajt, to czy w takim razie w tablicy:
a) Każdy boolean będzie siedział w swoim własnym, osobnym bajcie;
b) Będzie po 8 booleanów w każdym bajcie w tablicy?
Przypuszczałbym, że a), ale wtedy tablica będzie zawierała dziury, których wg. zapodanego PDFa miało nie być.

No więc, jak to jest ułożone?

2

Rozmiar typu bool to 1 bajt.
Za pomocą operacji bitowych można wyspecjalizować kontener w przechowywaniu liczb typu bool tak, aby zwiększając narzut czasowy zmniejszyć narzut pamięci.

0

okok, dzięki.

Na oko to się wydaje być strasznym marnotrastwem, no ale... wierzę, że ma to uzasadnienie.

Dzięki.

1

W komputerze bajt jest najmniejszą adresowalną jednostką pamięci. Dlatego.

1

jak masz vector<bool> v; - to nie masz marnotrawstwa, jeden bool -> jeden bit.

1 użytkowników online, w tym zalogowanych: 0, gości: 1