CDD/Plus Dictionary Data Definition Language Utility ALIGNED — VMS CDD+_4.1A
The ALIGNED field attribute clause aligns a field on a specified starting boundary relative to the start of the record.
Additional information available:
Usage Notes
o To satisfy hardware requirements, some languages and language
processors have field alignment restrictions for data
definitions. The ALIGNED clause enables you to control the
starting boundaries of fields you define.
o All fields, except BIT fields, begin by default on the first byte
following the last field. BIT fields begin on the bit
immediately following the last field. You can modify this
starting position with the ALIGNED clause.
o The ALIGNED clause aligns fields within a record relative to the
start of the record, not relative to virtual memory locations.
For example, if you specify LONGWORD alignment for a field, that
field does not necessarily begin on a longword boundary in
memory. Rather, the field begins some multiple of 32 bits beyond
the start of the record. To correctly use the ALIGNED clause,
you must know the memory alignment techniques of the language you
use with the CDD.
o You should not use the ALIGNED clause in template records. When
CDDL stores the template record, the position of an aligned field
is fixed within the record and is not changed when the record is
copied into another record definition. Therefore, the newly
created field may not align properly in the new record
definition.
Example
In the following example, a LONGWORD field (QUANTITY) follows a BYTE
field. The PRODUCT_NO field spans 64 bits, the DATE_ORDERED field
spans 64 bits, and the STATUS_CODE field spans 8 bits. The ALIGNED
clause causes the three bytes following STATUS_CODE to remain empty
and aligns QUANTITY exactly 160 bits beyond the start of the record.
IN_STOCK STRUCTURE.
PRODUCT_NO DATATYPE IS TEXT
SIZE IS 8 CHARACTERS.
DATE_ORDERED DATATYPE IS DATE.
STATUS_CODE DATATYPE IS BYTE.
QUANTITY DATATYPE IS LONGWORD
ALIGNED ON LONGWORD.
LOCATION ARRAY 1:4
DATATYPE IS TEXT
SIZE IS 30 CHARACTERS.
UNIT_PRICE DATATYPE IS LONGWORD SCALE -2.
END IN_STOCK STRUCTURE.