次のような場合には、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