Микропаскаль составные типы данных
Бывают случаи когда нельзя воспользоваться серией переменных или несколькими массивами. На помощь приходят составные типы данных. Это когда переменная состоит не из одного типа, а из нескольких. В качестве примера можно привести массив данных о сетевых настройках контроллеров.
type netcard = record myMacAddr : array[6] of byte ; // MAC address myIpAddr : array[4] of byte ; // IP address gwIpAddr : array[4] of byte ; // gateway (router) IP address ipMask : array[4] of byte ; // network mask (for example : 255.255.255.0) dnsIpAddr : array[4] of byte ; // DNS server IP address namecard : string[15] ; // Name card end;
Для создания переменной, использующей данную сложную структуру следует использовать стандартное объявление переменной.
var myNetCard, serverCard: netcard;
Доступ к внутренним переменным этой составной переменной осуществляется через их имена либо используя конструкцию with.
with myNetCard do begin myMacAddr[0] := 0x00; myMacAddr[1] := 0x14; myMacAddr[2] := 0xA5; myMacAddr[3] := 0x76; myMacAddr[4] := 0x19; myMacAddr[5] := 0x3F; myIpAddr[0] := 192; myIpAddr[1] := 168; myIpAddr[2] := 20; myIpAddr[3] := 60; gwIpAddr[0] := 192; gwIpAddr[1] := 168; gwIpAddr[2] := 20; gwIpAddr[3] := 6; ipMask[0] := 255; ipMask[1] := 255; ipMask[2] := 255; ipMask[3] := 0; dnsIpAddr[0] := 192; dnsIpAddr[1] := 168; dnsIpAddr[2] := 20; dnsIpAddr[3] := 1; namecard := "mycomp"; end;
Но если требуется доступ для пары-тройки переменных, то используется более короткий вариант:
serverCard.namecard := "myserver";
В отличие от Борланд и Обжект Паскаля в Микропаскале нет реализации объектов, но микроконтроллер типа Atmel не сильно подходит под объектно-ориентированное программирование.
Тэги: микроконтроллеры
Отредактировано:2021-10-28 21:21:05