Example 2 has two code samples:
The sample code for CPROC1 QSRC is shown in Figure 72.
/* CPROC1 QCSRC --- ILE C Procedure */
#include <stdio.h>
int inner(va_list);
int CPROC1(int p0, ...)
{
int rc;
va_list args;
va_start(args,p0);
rc = inner(args);
va_end(args);
return rc;
}
int inner(va_list v) {
int p1,p2,p3=0;
int p4,p5,p6=0;
int p7,p8,p9=0;
p1 = va_arg(v,int);
p2 = va_arg(v,int);
p3 = va_arg(v,int);
p4 = va_arg(v,int);
p5 = va_arg(v,int);
p6 = va_arg(v,int);
p7 = va_arg(v,int);
p8 = va_arg(v,int);
p9 = va_arg(v,int);
printf("In inner with p1=%d p2=%d p3=%d\n",
p1, p2, p3);
printf("In inner with p4=%d p5=%d p6=%d\n",
p4, p5, p6);
printf("In inner with p7=%d p8=%d p9=%d\n",
p7, p8, p9);
return(p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9);
}The sample code for VARG1 QCBLLESRC is shown in Figure 73.
*********************************************************************
* cbl1 qcbllesrc
*
* Description:
*
* COBOL source with ILE C procedure call.
*
*********************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. VARG1.
*** This program demonstrates how to call a C procedure
*** using variable-length argument list.
AUTHOR.
INSTALLATION. IBM Toronto Lab.
DATE-WRITTEN.
DATE-COMPILED.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-ISERIES.
OBJECT-COMPUTER. IBM-ISERIES.
SPECIAL-NAMES. LINKAGE PROCEDURE FOR "CPROC1"
USING ALL DESCRIBED.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM0 PIC S9(9) BINARY VALUE 0.
01 PARM1 PIC S9(9) BINARY VALUE 1.
01 PARM2 PIC S9(9) BINARY VALUE 2.
01 PARM3 PIC S9(9) BINARY VALUE 3.
01 PARM4 PIC S9(9) BINARY VALUE 4.
01 PARM5 PIC S9(9) BINARY VALUE 5.
01 PARM6 PIC S9(9) BINARY VALUE 6.
01 PARM7 PIC S9(9) BINARY VALUE 7.
01 PARM8 PIC S9(9) BINARY VALUE 8.
01 PARM9 PIC S9(9) BINARY VALUE 9.
01 RC1 PIC S9(9) BINARY VALUE 0.
PROCEDURE DIVISION.
MAIN.
CALL PROCEDURE "CPROC1" USING BY VALUE
PARM0
PARM1
PARM2
PARM3
PARM4
PARM5
PARM6
PARM7
PARM8
PARM9
RETURNING INTO RC1.
GOBACK.(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.