Тождественность и совместимость типов

 

Для выполнения программы с величинами различного типа требуется правильно применять понятия тождественности и совместимости типов данных, участвующих в опера­циях. Два типа являются тождественными, если они описаны вместе или если их определения используют один и тот же идентификатор типа.

 

Пример 3.17. Описание тождественных и нетождественных типов

Type

аl, а2 = array[1..10] ofbyte; (al, a2 - тождественные типы}

t = set of byte;

f = set of integer; {f, t — нетождественные типы}

или

var

a, t, pr: integer;

 

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

Воперациях сравнения два типа являются совместимыми при соблюдении хотя бы одно из условий:

q оба типа являются одинаковыми

q оба типа являются вещественными

q оба типа являются целочисленными

q один тип входит в диапазон другого

q оба типа входят в диапазон одного и того же основного типа

q оба типа являются множественными типами с совместимыми базовыми

типами

q оба типа являются строковыми с одинаковым числом компонентов

q один тип является строковым, а другой тип - строковым или символьным

qодин тип является указателем, а другой - любым типом указателей.

Пример 3.18.Совместимые и несовместимые типы данных

'a' > 'b' {Допустимо, так как оба значения относятся к типу char};

'a'>5 {Ошибка, так как сравниваемые значения имеют разные типы}.

 

В операциях присваивания два типа являются совместимыми при соблюдении хотя бы одно из следующих условий:

q оба типа тождественны и ни один из них не является файловым или структурным типом, содержащим компоненты с файловым типом на одном из своих уровней

q оба типа являются совместимыми простыми типами, и значения второго типа попадают в диапазон возможных значений первого

q оба типа относятся к вещественным типам, и значения второго типа

попадает в диапазон возможных значений первого

q первый тип является вещественным, а второй - целочисленным

q оба типа являются строковыми

q первый тип является строковым, а второй - литерным

q оба типа относятся к совместимым множественным типам, и все члены

 

значений второго типа попадают в диапазон возможных значений первого типа

q оба типа относятся к совместимым типам "указатель".

Пример 3.19.Совместимость типов

Var

a, b: integer;

c:=real;

Begin

a:= b; {правильно}

c:= b; {правильно}

a:= c; {ошибка}

End.








Дата добавления: 2015-01-13; просмотров: 1080;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.