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 句と同じ効果をもっています。