Обращаясь к фрагменту кода на cppreference.com , который я вставляю ниже, почему целые числа b
и c
расположены в одной и той же ячейке памяти:
struct S {
char a; // memory location #1
int b : 5; // memory location #2
int c : 11, // memory location #2 (continued)
: 0,
d : 8; // memory location #3
struct {
int ee : 8; // memory location #4
} e;
} obj; // The object 'obj' consists of 4 separate memory locations
Насколько я понимаю, например, в системе, в которой 1 байт = 8 бит, переменная a
будет занимать 1 байт.Тогда b
займет, скажем, 4 байта.Если и b
, и c
находятся в одной и той же ячейке памяти, которая будет заполнять 8 байтов, означает ли это, что 8 char
переменных могут быть размещены в одной и той же ячейке памяти в непрерывном режиме?
Кроме того,как программа узнает, куда обращаться к b
или c
, если они имеют одинаковое расположение в памяти?