beautypg.com

Compaq COBOL AAQ2G1FTK User Manual

Page 525

background image

Managing Memory and Data Access

16.4 Using Alignment Directives, Qualifiers, and Flags

The effects of the SYNCHRONIZED clause, the alignment command-line
option, and the SET ALIGNMENT directive on elementary data alignment
are identical.

Example 16–2 through Example 16–6 show a comparison of the use and results of
several alignment cases. They are applicable to both Tru64 UNIX and OpenVMS
Alpha. Example 16–2 shows the effects of the SYNCHRONIZED clause in
program source, as compared with the /ALIGNMENT qualifier on the command
line.

Example 16–2 Using /ALIGNMENT with SYNCHRONIZED

01 comp-group.

02 cg-x1

pic x.

1

02 cg-c1

pic 9(1) comp.

2

02 cg-c3

pic 9(3) comp.

3

02 cg-c7

pic 9(7) comp.

4

02 cg-c12

pic 9(12) comp.

5

01 comp-group-synch.

02 cg-x1-synch

pic x.

6

02 cg-c1-synch

pic 9(1) comp synchronized.

7

02 cg-c3-synch

pic 9(3) comp synchronized.

8

02 cg-c7-synch

pic 9(7) comp synchronized.

9

02 cg-c12-synch

pic 9(12) comp synchronized.

1 0

The data is aligned as shown in the following examples using different alignment
configurations. In the accompanying data diagrams, a number ( n ) indicates that
that byte is occupied by the nth field of the record, and a dash ( — ) indicates
a filler byte. The fields are indicated by the callouts in the right column of
Example 16–2.

Compaq COBOL for OpenVMS VAX would align the data as follows:

|

|

|

|

|

1111 | 1111

|

| 1223 | 3444 | 4555 | 5555 | 5

| 6-77 | 88-- | 9999 | ---- | 0000 | 0000 |

|

Compaq COBOL without the

-align

flag or the /ALIGNMENT qualifier or with

the /NOALIGNMENT qualifier would align the data as follows:

|

|

|

|

|

| 1111

1111 |

| 1223 | 3444 | 4555 | 5555 | 5

|

| 6-77 | 88-- | 9999 | ---- | 0000 | 0000 |

And finally, Compaq COBOL with the

-align

flag or the /ALIGNMENT qualifier

would align the data as follows:

|

|

|

|

|

| 1111

1111 |

| 1-22 | 33-- | 4444 | ---- | 5555 | 5555 | 6-77 | 88-- | 9999 | ---- | 0000 | 0000 |

Managing Memory and Data Access 16–9