M1000まとめサイト
OPL:プロシージャ
最終更新:
匿名ユーザー
-
view
<<OPLで開発
プロシージャ
プロシージャはOPLの構成要素の一つで、「PROC」で始まり「ENDP」で終わります。
PROC 名前: (コード) ENDP
1つのコードに複数のプロシージャを記述する事ができますが、コード先頭にあるプロシージャは実行時に最初に実行され、そのプロシージャが終了するとOPLアプリケーションは終了します。2つ目以降に記述されたプロシージャはサブルーチンとして呼び出して使います。サブルーチンとして呼び出す場合は「名前」+「:」で対象となるプロシージャを実行できます。
PROC main: sub_routine: ENDP PROC sub_routine: PRINT "Hello World" ENDP
なお、プロシージャには「引数」と「戻り値」を設定する事ができます。
引数があるプロシージャ
プロシージャには「引数」を設定する事ができます。引数を設定する事によってプロシージャを呼び出す時に様々な値を渡す事ができ、呼び出されたプロシージャ内で処理をする事ができます。
引数を設定する時は、プロシージャの後ろにカッコを付けて宣言します。この時に型を設定する必要があり、呼び出すときもこの型に従う必要があります。なお、引数はカンマ(,)で区切る事によって複数の引数を設定する事もできます。
PROC main: LOCAL a%,b%,c a = 1.5 print_num:(a) b% = 1 c% = 2 print_add:(b%,c%) ENDP PROC print_num:(in_dbl) PRINT a ENDP PROC print_add:(in_a%,in_b%) LOCAL x% x% = in_a% + in_b% PRINT x% ENDP
値を返すプロシージャ
プロシージャは「戻り値」を設定する事もできます。戻り値を設定する事によってプロシージャ内での計算結果を呼び出し側で受け取ることができるようになります。
戻り値を設定する時はプロシージャに型を設定し、RETURNコマンドを使って指定した値を返します。なお、「戻り値」と「引数」は兼ねる事ができます。
PROC main: LOCAL key%,x% key% = get_key%: x% = get_add%:(1,2) PRINT x% ENDP PROC get_key%: LOCAL key% key% = GET RETURN key% ENDP PROC get_add%:(a%,b%) LOCAL c% c% = a% + b% RETURN c% ENDP