Для использования шаблона записи в программе необходимо определить переменную с типом данной записи, для чего применяется следующая синтаксическая конструкция (рис. 7):
Рис. 7. Синтаксис описания экземпляра записи
Анализируя эту синтаксическую диаграмму, можно сделать вывод, что инициализация элементов записи осуществляется достаточно гибко. Рассмотрим несколько вариантов инициализации.
Если инициализировать поля не требуется, то достаточно указать ? при определении экземпляра записи:
...iotest recordi1:1,i2:2=11,i3:1,i4:2=11,i5:2=00 ...flag iotest ? |
Если вы составите и исследуете в отладчике тестовый пример с данным определением записи, то увидите, что все поля переменной типа запись flag обнуляются. Это происходит несмотря на то, что в определении записи заданы начальные значения полей.
Если требуется частичная инициализация элементов, то они заключаются в угловые (< и >) или фигурные ({ и }) скобки.
Различие здесь в том, что в угловых скобках элементы должны быть заданы в том же порядке, что и в определении записи. Если значение некоторого элемента совпадает с начальным, то его можно не указывать, но обязательно обозначить его запятой. Для последних элементов идущие подряд запятые можно опустить.
К примеру, согласиться со значениями по умолчанию можно так:
iotest recordi1:1,i2:2=11,i3:1,i4:2=11,i5:2=00...flag iotest <> ;согласились со значением по умолчанию |
Изменить значение поля i2 можно так:
iotest recordi1:1,i2:2=11,i3:1,i4:2=11,i5:2=00...flag iotest <,10,> ; переопределили i2 |
Применяя фигурные скобки, также можно указать выборочную инициализацию полей, но при этом необязательно обозначать запятыми поля, со значениями по умолчанию которых мы согласны:
iotest recordi1:1,i2:2=11,i3:1,i4:2=11,i5:2=00...flag iotest {i2=10} ;переопределили i2, не обращая внимания на порядок;следования других компонентов записи |