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


ウィキ募集バナー