SYNCHRONIZED 句

SYNCHRONIZED 句は、コンピューターのメモリのワード境界での基本項目の整列を指定します。

一般形式

{SYNCHRONIZED}  [LEFT ]
{SYNC        }  [RIGHT]

構文規則

  1. SYNC は SYNCHRONIZED の省略形です。
  2. SYNCHRONIZED 句は、基本項目にのみ使用できます。
  3. SYNCHRONIZED 句は、外部の浮動小数点データ項目との併用はできません。

一般規則

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

    1 の制限値は、同期を効果的に抑制します。

  8. LEFT および RIGHT オプションは、注釈として処理されます。これらは、いずれのオプションも指定しない SYNCHRONIZED 句と同じ効果を持ちます。