The following example shows how the Header-to-copy utility translates type definitions in C source code to their equivalent COBOL copyfile form.
C source:
typedef char t_slab[12], cnt, c_list[], c_table[12][5]; typedef unsigned char BYTE, *BYTE_ptr; typedef t_slab *t_slab_ptr; typedef void _near _cdecl _export _dmsEVENT(short ent_type); typedef _dmsEVENT *fptr; typedef void (*XtActionProc)( #if NeedFunctionPrototypes Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ #endif ); typedef XtActionProc* XtBoundActions;
COBOL output:
01 t-slab is typedef pic x(12).
01 cnt is typedef usage char.
01 c-list is typedef usage data-pointer.
01 c-table is typedef.
02 filler occurs 12 pic x(5).
01 BYTE is typedef usage uns-char.
01 BYTE-ptr is typedef usage data-pointer.
01 t-slab-ptr is typedef usage data-pointer.
01 fptr is typedef usage proc-pointer.
01 XtActionProc is typedef usage proc-pointer.
01 XtBoundActions is typedef usage data-pointer.
Other type definitions generate similar COBOL type definitions. For example:
typedef signed int I, AI[12], *PI, I_Table[12] [5];
produces the following COBOL code:
01 I is typedef usage int.
01 AI is typedef.
02 filler occurs 12 usage int.
01 PI is typedef usage data-pointer.
01 I-Table is typedef.
02 filler occurs 5.
03 filler occurs 12 usage int.