ヘッダー プリプロセッサの使用方法

次のような場合には、Header-to-copy ユーティリティをコマンド ラインから実行すると便利です。

簡単な C ヘッダー ファイルの場合には、COBOL プログラム内から C ヘッダー ファイルを直接参照する方が便利です。この場合は、プログラムをコンパイルするごとに、ヘッダー プリプロセッサが Header-to-copy ユーティリティを自動的に起動します。

この方法で Header-to-copy ユーティリティを使用するには、COBOL プログラム内に、.h ファイルを参照する COPY 文を記述します。COPY 文の記述位置には、特に制約はありません。さらに、PREPROCESS(headers) 指令も使用できます。次に示すように $SET 文を使用すれば容易に指定できます。

$set preprocess(headers)
 working-storage section.
 01 data-item pic x(9).
     copy "cheader.h".
 01 cobol-b usage btype.
 procedure division.
     copy "cheader2.h".
     move 6 to c-long        of cobol-b
     move 7 to c-int         of cobol-b
     move "Show" to c-char   of cobol-b
     display "C struct= " c-long " " c-int " " c-char  level-78.

cheader.h の内容を次に示します。

#define b B
int a;
typedef struct btype {
   long c_long;
   char c_char[5];
   int  c_int;
   } b;

cheader2.h の内容を次に示します。

#ifdef b
#define level_78 "C literal"
#else
typedef struct btype {
   signed char c_uchar;
   float  c_float[5];
   } b;
#endif

このプログラムを実行すると、次のメッセージが表示されます。

C struct= +0000000006 +00007 Show C literal