COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

41.1.2 64bit版PC(x64) COBOL2002固有の言語仕様

64bit版PC(x64) COBOL2002では,32bit版PC(x86) COBOL2002と比べて呼び出し規約の変更,およびポインタサイズの64bit化に対応しました。そのため,64bit版PC(x64) COBOL2002に対応するCOBOL2002の言語仕様にも32bit版PC(x86) COBOL2002と比べて一部変更があります。

64bit版PC(x64) COBOL2002固有の言語仕様について説明します。

<この項の構成>
(1) 呼び出し規約のfastcallへの限定
(2) アドレス系データを表現するデータ項目
(3) 長さを返す組み込み関数の戻り値

(1) 呼び出し規約のfastcallへの限定

64bit版PC(x64) COBOL2002では,呼び出し規約がfastcallに限定されます。ほかの呼び出し規約を指定することはできません。fastcall呼び出し規約については,「19.4.2 呼び出し規約」の「(3) fastcall呼び出し規約(64bit版PC(x64) COBOL2002で有効)」を参照してください。

(a) 言語仕様

64bit版PC(x64) COBOL2002では使用できない呼び出し規約の指定に関する言語仕様を,次に示します。

表41-3 使用できない呼び出し規約の指定に関する言語仕様

言語仕様 指定
環境部の特殊名段落(SPECIAL-NAMES)
  • SPECIAL-NAMESの機能名のCDECL/STDCALL/PASCAL指定
環境部の外部プログラム節(EXTERNAL-PROGRAM SECTION)
  • EXTERNAL-PROGRAM SECTIONの指定
  • CALL-CONVENTION段落の指定

これらの言語仕様を指定した場合,コンパイラはfastcall呼び出し規約で処理し,指定された言語仕様を覚え書きとする警告エラーを出力します。

(b) コンパイラオプション

64bit版PC(x64) COBOL2002では使用できない,呼び出し規約の指定に関するコンパイラオプションを次に示します。

もし,これらのコンパイラオプションを指定した場合は,コンパイラは指定を無視して処理を続けます。

注※
-Dllオプションのサブオプションの指定だけが無効になります。

(2) アドレス系データを表現するデータ項目

長さが8バイトになるアドレス系データを表現するデータ項目を,次に示します。これらの項目の自然な境界は8バイトです。SYNCHRONIZED句を指定してけた詰めする場合は,8バイト境界になります。

SYNCHRONIZED句については,マニュアル「COBOL2002 言語 標準仕様編 9.16.80 SYNCHRONIZED句」を参照してください。

けた詰めについては,マニュアル「COBOL2002 言語 標準仕様編 4.4.1(7) 実行用コードの効率を高めるための項目のけた詰め」を参照してください。

(3) 長さを返す組み込み関数の戻り値

返却値のサイズが8バイト2進になる組み込み関数を,次に示します。

LENGTH関数については,マニュアル「COBOL2002 言語 標準仕様編 11.31 LENGTH関数」を参照してください。

LENGTH-OF-VARIANT関数については,マニュアル「COBOL2002 言語 標準仕様編 11.33 LENGTH-OF-VARIANT関数」を参照してください。

COUNT-CHAR関数については,マニュアル「COBOL2002 言語 拡張仕様編 24.2.1 COUNT-CHAR関数」を参照してください。

LENGTH-OF-SUBSTRING関数については,マニュアル「COBOL2002 言語 拡張仕様編 24.2.3 LENGTH-OF-SUBSTRING関数」を参照してください。