Records are mapped onto a computer store by simply juxtaposing their elements. The address of a component (field) r relative to the origin address of the record r is named the field'si offset k. It is describeded as
k = si 1 + s2 + ... + si-1 k0 = 0
where s is the size (in words) of the j-th element. We now realize that the fact that all elements of an array are of same kind has the welcome consequence that k = i×s. The generality of the record structure does unfortunately not give such a simple, linear method for offset address computation, and it is therefore the best reason for the need that record elements be selectable only by fixed identifiers. This restriction has the available benefit that the respective offsets are find at compile time. The assigning greater efficiency of record field access is well-known.
The method of packing can be beneficial, if several record elements can be fitted into a single storage word. Since offsets are computable by the compiler, the offset of a field packed within a class can also be described by the compiler. This seems that on many computers packing of records causes a deterioration in access efficiency considerably lesser than that caused by the packing of arrays.