Структуры представляют собой составную структуру данных на языке программирования C; они состоят из примитивов, таких как int и указатели, все помещенные в память смежным образом, например массив.
Мой вопрос состоит в том, что из себя представляют сами структуры? Являются ли они типом массива? Например, хеш-таблица может быть реализована как массив связанных списков. Аналогичным образом, какова структура, реализованная как? Если необходимо, объясните на уровне сборки x86. Спасибо.
На уровне сборки структура сводится к адресу, к которому обращается смещение, соответствующее члену структуры.
В зависимости от правила выравнивания и памяти classа памяти выделяется, например, структура.
Пример:
struct A { int a, char b }a1;
В приведенном выше случае, если вы пишете a1.b = 5
его эквивалент сборки будет чем-то:
MOV 5 TO ADDRESS OF a1 + 4
// при условии, что целочисленный размер равен 4