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.