Учебник по Delphi 4


Data_type


    Типы данных

        С помощью типов данных программист указывает компилятору, как хранить информацию в программе. При объявлении переменной необходимо указать ее тип. Одни типы уже определены в языке, другие программисту приходится задавать самому. В ранних языках программирования допускалось ограниченное число типов данных, и 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 избавляет программиста от необходимости вычислять объем данных в подобных случаях.


    Содержание раздела