SYNCHRONIZED 句は、コンピューターのメモリのワード境界での基本項目の整列を指定します。
一般形式
{SYNCHRONIZED} [LEFT ]
{SYNC } [RIGHT]
構文規則
- SYNC は SYNCHRONIZED の省略形です。
- SYNCHRONIZED 句は、基本項目にのみ使用できます。
- SYNCHRONIZED 句は、外部の浮動小数点データ項目との併用はできません。
一般規則
- SYNCHRONIZED 句は、データ項目でワード境界の整列を行うことを指定するために使用します。通常、レコードに含まれるデータは、バイト境界で整列されます。基本となる表現がバイナリであるデータ項目のみが SYNCHRONIZED 句の影響を受けます。
- SYNCHRONIZED 句は、データ項目をその実際のサイズの偶数倍である境界に配置します。次の表に、各サイズのデータ項目で使用する境界をリストします。
データ サイズ |
境界の倍数 |
1 から 2 |
2 |
3 から 4 |
4 |
5 から 8 |
8 |
- 同期したデータ項目を含むグループ項目も同じ境界で同期されます。同期の影響にかかわらず、グループ項目は常にその最初の基本データ項目と同じ場所で始まります。
- 同期により、埋め草文字バイトが作成される場合があります。これらのバイトは、それらを含むグループ項目のサイズに合計されます。このため、同期したデータを含むグループ項目は、その基本項目の合計サイズよりも大きくなる場合があります。
- 他の方法では同期されないレベル 01 およびレベル 77 のデータ項目は、コンパイル時に選択できる境界に配置されます。デフォルトでは、これらの項目は 2 つに分割できるワード境界に配置されます。
- POINTER または COMP-5 項目であるレベル 01 およびレベル 77 のデータ項目は、コンパイル時の設定にかかわらず、適切なマシン境界に自動的に同期されます。すべての C 型のデータ型は、そのレベルにかかわらず、自動的に同期されます。これにより、整列を考慮しなくても、これらの項目を C サブルーチンに安全に渡せます。
- コンパイル時 (-Dl) オプションは、最大境界倍数を縮小するために使用できます。たとえば -Dl4 は、サイズ 1 または 2 の項目を 2 バイトの境界で同期し、他のすべての項目を 4 バイトの境界で同期します。このオプションを指定しない場合は、以下のとおり、最大境界倍数は使用中の互換モードに依存します。
モード |
境界制限 |
VAX COBOL |
8 |
RM/COBOL |
2 |
ICOBOL |
1 |
1 の制限値は、同期を効果的に抑制します。
- LEFT および RIGHT オプションは、注釈として処理されます。これらは、いずれのオプションも指定しない SYNCHRONIZED 句と同じ効果を持ちます。