С помощью
типов данных программист указывает компилятору, как хранить информацию в программе.
При объявлении переменной необходимо указать ее тип. Одни типы уже определены
в языке, другие программисту приходится задавать самому. В ранних языках программирования
допускалось ограниченное число типов данных, и Pascal оказался одним из первых
языков, допускающих определение в программе новых типов.
Типы данных, определяемые пользователем, обычно задаются в разделе определения
типов программы или модуля (unit), однако это можно делать и внутри процедур
или функции. Объявления типов действуют в пределах того блока, в котором они
размещены. Вне этого блока ссылаться на такие типы нельзя. Внутри же они заменяют
все внешние типы с тем же именем. Объявленные типы данных можно применять
в любом месте области их видимости; запрещена только ссылка определяемого
типа на самого себя (тут, однако, есть одно исключение, касающееся указателей).
Объявления типов в Pascal являются для компилятора чем-то
вроде схем, которые он должен запомнить на случай, если вдруг встретит в программе
ссылки на тот или иной тип. Само по себе объявление типа не вносит в программу
никаких изменений.
Что же касается объявлений var, то они задают компилятору
некоторые действия, связанные с ранее объявленными типами. Тип переменной
ограничивает как ее значения, так и операции, которые можно выполнять с этими
значениями.
Определения типов и переменных могут размещаться в нескольких
местах компонентов программы. Выглядят же они следующим образом.
type
typel = type definitioni;
//Новые типы данных определяются в разделе "type". Каждому новому
// типу присваивается имя, затем он определяется через уже
//существующие типы.
type2 = type__definition2;
// В одном разделе "type" можно объявить несколько типов.
//Самое простое определение типа состоит из имени типа,
type3 = typel;
// определенного ранее.
// Новые переменные объявляются в
var
// разделе "var". Каждой новой
var1: type definitions;
// переменной сначала присваивается имя, а затем — тип (на основе
// ранее определенных типов).
var2, var3: type definition4;
// В одном разделе "var" можно объявить несколько переменных.
// Нескольким переменным можно присваивать один и тот же тип.
var4 : typel;
// Программу легче читать, если переменным присвоены
//существующие типы.
Синтаксис
Object Pascal позволяет одновременно конструировать исключительно сложные
типы и определение переменных. Однако определение типов в разделах type тех
или иных блоков дает возможность использовать эти типы в разных частях программы.
Новые типы определяются из типов следующих категории.
Обычно
идентификаторы типов используются только при определении новых типов или объявлении
переменных. Есть, однако, несколько функций, в которых имя типа может использоваться
как часть выполняемого оператора. Например, функция SizeOf (Т) возвращает
количество байтов, занимаемых переменной Т.
Функция SizeOf очень важна для написания эффективных программ.
Многие из определенных в Object Pascal типов имеют очень сложную структуру
и могут занимать в памяти довольно много места. При этом элементы таких типов
созданы скорее для представления значений в некотором логическом порядке,
а не для того, чтобы занимать место в памяти. Функция SizeOf избавляет программиста
от необходимости вычислять объем данных в подобных случаях.