Node:Record Types, Next:Variant Records, Previous:Array Types, Up:Type Definition Possibilities

##### Record Types

    type
      record_type_identifier = record
        field_identifier: type_definition;
        ...
        field_identifier: type_definition;
      end;

or, with a variant part,

    type
      record_type_identifier = record
        field_identifier: type_definition;
        ...
        field_identifier: type_definition;
      case bar: variant_type of
        selector: (field_declarations);
        selector: (field_declarations);
        ...
      end;

or, without a variant selector field,

    type
      record_type_identifier = record
        field_identifier: type_definition;
        ...
        field_identifier: type_definition;
      case variant_type of
        selector: (field_declarations);
        selector: (field_declarations);
        ...
      end;

The reserved word `record` defines a structure of fields. Records can be `packed` to save memory usage at the expense of speed.

The reserved word `record` and record types are defined in ISO 7185 Pascal. According to ISO Pascal, the variant type must be an identifier. GNU Pascal, like UCSD and Borland Pascal, also allows a subrange here.

A record field is accessed by record_type_variable . field_identifier

See also: packed, case Statement.