Agenda ■ 今回宿題 D仕様書 -EXTNAME ~ D仕様書 & P仕様書 - プロシージャ C仕様書を少し ■ 次回以降 C仕様書つづき BIF( Build In Function ) サービスプログラム作成 ソースのコンパイル、デバッグ等 C hubu… S ystem… C orporation
3.
D 仕様書( EXTNAME~) 覚えておきたいキーワード前回の続き EXTNAME =外部データ構造体(実PFのDDS)のインクルード EXTFLD =サブフィールドのリネイム 擬似的な多次元配列 C hubu… S ystem… C orporation
4.
D 仕様書( EXTNAME) ■ D仕様書記述例 ■ C仕様書記述例 *OUTPUT = WRITE に使える C hubu… S ystem… C orporation
5.
D 仕様書( EXTFLD) ■ D仕様書記述例 ■ C仕様書記述例 フィールド別名定義が必要 ■ I 仕様書記述例 *INPUT=READ,UPDATE に使える C hubu… S ystem… C orporation
6.
D 仕様書(擬似的多次元配列) ■ D仕様書記述例 ■ C仕様書記述例 LIKEDS で入れ子構造にする SPACE41 の要素が一括で 44 になる。 ■ Q.質問 更に上位の HIGHT41=44 としたら、どういう結果になるでしょう? ・この応用で木構造も定義出来る C hubu… S ystem… C orporation
7.
D &P仕様書プロシージャとは(1) プロシージャとは?プロシージャとはサブルーチン?じゃあ BEGSR は?。 メインプロシージャとサブプロシージャがある。 プロシージャは、プロトタイプの定義が必要 (コンパイラーの為だけど… orz ) プロシージャは、インターフェース (引数) 定義が必要。 サブプロシージャは、簡単に言えば、再利用可能な関数 (厳密には違うけど) サブプロシージャは、P仕様書で開始と終わりを記述する サブプロシージャーを再利用するためには明示的に公開する ( P 仕様書の EXPORT オプション) C hubu… S ystem… C orporation
8.
D &P仕様書プロシージャとは(2) メインプロシージャの特徴名前はプログラム名と同じ (じゃあ書かすなよ! (# ゚ Д ゚ ) ゴルァ !! ) プログラムに1つだけ存在 (よけいに書かすなよ! (# ゚ Д ゚ ) ゴルァ !! ) インターフェースは「 *ENTRY 」の代わりと思って99%間違いない インターフェースの引数は、参照渡しのみ(値渡しは不可) 戻り値はない P仕様書はない 故に公開できない。呼び出す場合は OPM の CALL C hubu… S ystem… C orporation
9.
D &P仕様書プロシージャとは(3) サブプロシージャの特徴名前は何でもいい。でも明確なルール付けは重要。 プログラムに、いくつでも定義出来る。 同一アプリで重複するプロシージャ名は、ご法度。明示的参照が出来ない。 (これって、RPGの痛い弱点だと思う...( T Д T) ) インターフェースの引数は、値渡しも可能。 戻り値の指定が出来る。(独立変数はもちろん、構造体も渡せます。) ロジックは、P仕様書の間に記述する。 EXPORT したら、みんなグローバル関数。 ( この言語仕様ってどうよ? ( ゚ Д ゚ ) ナニカ ? ) ローカル変数が使える。 ※ V6R1 からローカルファイルが使える(これは いい (≧∇≦)b ) C hubu… S ystem… C orporation
10.
プロシージャの記述例(1) ■ メインプロシージャ記述例プロトタイプの引数名は有っても、無くても問題ない ■ サブプロシージャ記述例 インターフェースの引数はそのままプログラム変数として使う オプションなしは参照渡し VALUE は値渡し PR=プロトタイプ PI=インターフェース サブプロシージャのプロトタイプはメインプログラムのD仕様に記述 C hubu… S ystem… C orporation
11.
プロシージャの記述例(2) ■ サブプロシージャ記述例つづきローカルな変数 P仕様書でサブプロシージャ開始 EXPORT は公開 実際の処理 戻り値 P仕様書でサブプロシージャ終了 名前は省略も可能 C hubu… S ystem… C orporation