例 2 には、以下の 2 つのサンプル・コードがあります。
CPROC1 QSRC のサンプル・コードは、図 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); }
VARG1 QCBLLESRC のサンプル・コードは、図 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.