Чтобы способствовать наследованию объектов, Турбо Ассемблер обеспечивает способ, при котором весь тип данных структуры или объединения, включая имена элементов, встраивается в открытое оп- ределение структуры. Он интерпретирует встроенную структуру или объединение, как если бы они были вложены в этой точке внутри от- крытого определения структуры или объединения. Таким образом, встраивание одной структуры или объединения в другую принципиаль- но отличается от включения в структуру или объединение экземпляра другой структуры или объединения: экземпляр включает в себя толь- ко инициализированные или неинициализированные данные, в то время как встраиваемая структура или объединение включает в себя имена данных, структур и имена элементов.
Приведем синтаксис режима Ideal:
STRUC имя_структуры параметры_заполнения
В режиме MASM вы можете использовать следующий синтаксис:
имя_структуры STRUC параметры_заполнение
Оператор такого вида можно использовать только внутри струк- туры или объединения. Здесь "имя_структуры" - это имя ранее опре- деленной структуры или объединения, которая должны включаться. "Параметры_заполнения" задают изменения, которые вы хотите внести в начальные (используемые по умолчанию) значения включенных эле- ментов структуры. Ключевое слово ? указывает, что все встраивае- мые элементы структуры нужно рассматривать, как неинициализиро- ванные. В противном случае поле "параметры_заполнения" имеет следующий синтаксис:
{ [имя_элемента [=выражение] [,имя_элемента [=выражение].]] }
где "имя_элемента" - это имя любого элемента включаемой структу- ры, начальное значение которого при включении требуется изменить. "Выражение" представляет собой значение, на которое вы хотите его изменить. При наличии "выражения" начальное значение этого эле- мента структуры при его включении останется без изменения. Если вы задаете в поле выражения ключевое слово ?, то начальное значе- ние элемента будет записываться при его включении, как неинициа- лизированное.