Anda di halaman 1dari 1

Alignment in Unicode Systems

In Unicode systems, in addition to alignment requirements for numeric data objects of types i, decfloat16,
decfloat34, f, s, and of deep data objects, all character-like data types are also affected. The alignment is
determined by the length requirement of a character in the memory.

As a consequence, in structures with components of different data types, the alignment gaps in Unicode
systems may be different to those in non Unicode systems. For enhancements between structures, the
Unicode fragment view concept has been introduced, which divides a structure into fragments according to its
alignment gaps.

Note

Alignment gaps can also occur at the end of structures, as the overall length of the structure is determined by
the component with the largest alignment requirement.

Example

In the following structure, alignment gaps (A) occur in Unicode systems that are not present in non-Unicode
systems. The first alignment gap is formed as a result of the alignment of the substructure struc2, the second
due to the alignment of the component c of type c>, and the third is due to the component d of type i.

DATA:
BEGIN OF struc1,
a TYPE x LENGTH 1,
BEGIN OF struc2,
b TYPE x LENGTH 1,
c TYPE c LENGTH 6,
END OF struc2,
d TYPE i,
END OF struc1.

Non-Unicode system [ a | b | cccccc | dddd ]


Unicode system [ a | A | b | A | cccccccccccc | AA | dddd ]

Anda mungkin juga menyukai