Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структуры



Структуры предназначены для создания новых типов данных на основе элементов разных базовых типов. С переменной типа структура можно обращаться как с единым элементом, передавать в качестве параметра, создавать указатели, копировать и т. д.

В отличие от массивов структура действительно вводит новый тип данных. Это означает, что до применения конкретной пере­менной нужно выполнить как минимум два объявления. Сначала нужно описать структуру. Описание структуры происходит глоба­льно, на уровне проекта. Описанная структура получает иденти­фикатор (имя структуры). Но это еще не переменная, это новый тип данных. Теперь, используя новый идентификатор, нужно объявить одну или сколько угодно переменных, точно так же, как и для базовых типов. Только теперь переменная нового типа получает «телесную оболочку» или, иными словами, конкретное место в памяти данных.

Объявление структуры должно начинаться с ключевого слова STRUCT и заканчиваться END_STRUCT. Синтаксис объявления выглядит так:

TYPE <Имя_структуры>: STRUCT

<Объявление переменной 1>

• • •

<Объявление переменной п>

END_STRUCT

END_TYPE

Пример объявления структуры по имени Trolley:

TYPE Trolley: STRUCT

Start: TIME;

 

Distance: INT;

Load, On: BOOL;

Articl: STRING(16);

 

END_STRUCT

END_TYPE

Объявление в программе переменной Telegal типа Trolley и начальная инициализация структуры выглядит так:

Telegal: Trolley:= (Articl:='Пустой');

При начальной инициализации не обязательно задавать значе­ния для всех элементов. Элементы, не имеющие явно указанных начальных значений, по умолчанию получат нулевые значения.

Для доступа к элементам структуры используется следующий синтаксис:

<Имя__переменной>.<Имя_элемента>

Например:

Telegal.On:= True;

Структуры могут включать другие структуры, массивы и сами образовывать массивы. Пример объявления и инициализации массива структур:

TrolleySet: ARRAY[0..2] OF Trolley:= (Articl:= 'Т1'), (Articl:= 'Т2'), (Articl:= 'ТЗ'); TrolleySet[i].On:= TRUE;

Если структура содержит вложенную структуру, то доступ к элементам вложенной структуры осуществляется с применением составного имени, содержащего две точки:

train.wagon[5]. weight; (*wagon[] вложенный массив структур*)

Поскольку физический размер элементов структуры известен транслятору заранее, обращение к элементу структуры не дает каких-либо накладных расходов в сравнении с простой перемен­ной. Транслятор имеет возможность рассчитать абсолютные адре-

са элементов при компиляции. Естественно, это не относится к массивам структур. Чтобы не иметь проблем при использовании нескольких различных переменных одной структуры, применять прямые адреса в структуре нельзя.





Дата публикования: 2015-04-10; Прочитано: 298 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...