COBOL2002 言語 拡張仕様編
int main(){ char DATABUF[50]; strncpy(DATABUF, 'abcd', 5); SampleTP(DATABUF); :
IDENTIFICATION DIVISION . PROGRAM-ID. 'SampleTP'. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DYNAMIC LENGTH STRUCTURE C-STRING IS C-STATIC-STRUCTURE . DATA DIVISION. LINKAGE SECTION. 01 DYNADATA PIC X DYNAMIC LENGTH C-STRING . PROCEDURE DIVISION USING DYNADATA . DISPLAY DYNADATA. *> 'abcd'が表示される
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DYNAMIC LENGTH STRUCTURE C-STRING IS C-STATIC-STRUCTURE . DATA DIVISION. WORKING-STORAGE SECTION. 01 DYNADATA PIC X DYNAMIC LENGTH C-STRING LIMIT 20 . PROCEDURE DIVISION . MOVE 'abcde' TO DYNADATA. *> DYNADATAには'abcde'+終端文字(X'00')が格納される CALL 'csub' USING DYNADATA.
int csub(char *data1){ /* data1はCOBOL側のDYNAMDATAの領域を指す。 */ /* DYNAMDATA の実領域は21バイトであるが,末尾は終端文字であるため*/ /* data1に対する操作は20バイト以内で行うこと */ :
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.