TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Нетипизированные параметры 

             Когда формальный параметр является нетипизированным парамет-
        ром-переменной, то  соответствующий  фактический  параметр  может
        представлять собой любую ссылку на переменную или константу,  не-
        зависимо от ее типа.  Нетипизированный параметр, описанный с клю-
        чевым словом var,  может модифицироваться, а нетипизированный па-
        раметр,  описанный  с  ключевым словом const,  доступен только по
        чтению.

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

             Приведем пример нетипизированных параметров-переменных:

             function Equal(var source,dest; size: word): boolean;
             type
               Bytes = array[0..MaxInt] of byte;
             var
               N: integer;
             begin
               N := 0;
              while (N Bytes(source)[N]
                              do Inc(N);
               Equal := N = size;
             end;

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

            type
              Vector = array[1..10] of integer;
              Point = record
                        x,y: integer;
                      end;
             var
               Vec1, Vec2: Vector;
               N: integer;
               P: Point;

        и вызовов функций:

             Equal(Vec1,Vec2,SizeOf(Vector))
             Equal(Vec1,Vec2,SizeOf(integer)*N)
             Equal(Vec[1],Vec1[6],SizeOf(integer)*5)
             Equal(Vec1[1],P,4)

        сравнивается Vес1 с Vес2,  сравниваются первые N элементов Vес1 с
        первыми N элементами Vес2, сравниваются первые 5 элементов Vес1 с
        последними пятью элементами Vес2 и сравниваются Vес1[1] с  Р.х  и
        Vес2[2] с P.Y.

             Хотя нетипизированные  параметры  дают вам большую гибкость,
        их использование сопряжено с некоторым риском.  Компилятор не мо-
        жет проверить  допустимость операций с нетипизированными перемен-
        ными.


Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz