A declaration of a packed type has the form:
TYPE T = BITS n FOR Basewhere Base is a type and n is an integer-valued constant expression. The values of type T are the same as the values of type Base, but variables of type T that occur in records, objects, or arrays will occupy exactly n bits and be packed adjacent to the preceding field or element. For example, a variable of type
ARRAY [0..255] OF BITS 1 FOR BOOLEANis an array of 256 booleans, each of which occupies one bit of storage.
The values allowed for n are implementation-dependent. An illegal value for n is a static error. The legality of a packed type can depend on its context; for example, an implementation could prohibit packed integers from spanning word boundaries.