Microsoft KB Archive/57353

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Example of Passing an Array of Integers from COBOL to C

PSS ID Number: Q57353 Article last modified on 12-06-1990

3.00 3.00a MS-DOS

Summary: The two programs shown below demonstrate how a Microsoft COBOL program can pass an array of integers to a Microsoft C routine. This information about interlanguage calling applies to Microsoft COBOL versions 3.00 and 3.00a for MS-DOS.

More Information: For more examples of passing other types of parameters between COBOL and C, query on the following word: COB2C For a complete discussion about mixed-language programming with COBOL, search in the Software/Data Library for the following word: COBMIXED

Code Example

To demonstrate these programs from an .EXE program, compile and link as follows: COBOL COB.CBL; CL /c /Awlf C.C ; LINK /NOE COB MINITC C,,,LCOBOL LLIBCE; The following COBOL program is COB.CBL, which passes an array of integers to a C routine. The C routine then prints out the passed array. $SET LITLINK $SET ANS85 IDENTIFICATION DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 T-COUNT PIC 99. 01 T-TABLE. 05 THE-TABLE PIC 9(4) COMP-5 OCCURS 5 TIMES. PROCEDURE DIVISION. PERFORM VARYING T-COUNT FROM 1 BY 1 UNTIL T-COUNT > 5 MOVE T-COUNT TO THE-TABLE(T-COUNT) END-PERFORM. CALL “C_CProc” USING T-TABLE. STOP RUN. The following program is C.C, which displays the values contained in a passed array of integers: #include <stdio.h> void CProc(int IntTable[4]) { int count; for (count = 0; count < 5; count++) printf(“Array [%i]: %i”, count, IntTable[count]); } COB.EXE produces the following output: Array [0]: 1 Array [1]: 2 Array [2]: 3 Array [3]: 4 Array [4]: 5

Copyright Microsoft Corporation 1990.