COBOL2002 言語 拡張仕様編
- 一般形式
DYNAMIC LENGTH STRUCTURE 動的長構造名1 IS 物理構造名1
- 構文規則
- 物理構造名1は,動的長基本項目に対する物理的な構造を指定する。
このシステムでは物理構造名1はC-STATIC-STRUCTUREとする。それ以外の名前は指定できない。
C-STATIC-STRUCTUREによって定義される構造は次のとおりである。
・データが終端文字で終わる。内部的には最大長+1文字の領域を確保する。なお,終端文字は,英数字項目の場合X'00',日本語項目の場合X'0000'となる。
・DYNAMIC LENGTH句のLIMIT指定の値,または最初に格納されたデータの長さを上限として動作する。LIMIT指定がある場合はLIMIT指定の値が優先される。上限以上の長さのデータを転記しても動的に拡張されず,転記時に切り捨てられる。
- (例)
- DYNAMIC LENGTH句のLIMIT指定が4の場合,4+1文字の領域が確保される。この領域に3バイト文字が格納されると残りの領域に終端文字が入る。
- 最初に格納されたデータには次の二つのケースがある。
- 作業場所節で動的長基本項目が定義され,かつVALUE句で初期値を与えた場合は,VALUE句に指定した定数の長さが上限となる。
- ほかの言語から終端文字(X'00')で終わる文字列が渡された場合は,ほかの言語で渡された領域に格納されているデータの長さを上限とする。
- VALUE句の指定がない作業場所節の動的長基本項目は,最左端から最大長+1の領域を終端文字で初期化する。
- 一般規則
- C-STATIC-STRUCTUREに指定した動的長構造名1で定義されるデータの終わりには終端文字が入る。
英数字項目の終端文字はX'00',日本語項目の終端文字はX'0000'となる。
英数字項目または日本語項目の終端文字は,このシステムが設定する。
なお,C言語から字類が日本語の動的長基本項目に文字列を渡す場合も,データの終わりがX'0000'でなければならない。また,字類が日本語の動的長基本項目では文字列の先頭から2バイトずつX'0000'を探すため,C言語から渡すデータに1バイト文字が混在してはならない。
- DYNAMIC LENGTH STRUCTURE句を指定したプログラムに-H8Switchオプションは指定できない。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.