サブルーチンを呼び出す命令文
構文:
Call procname
([parameter list])
記述:
このキーワードは、初期の BASIC 方言から残された命令で、推奨されません。
-lang fb では、コンパイル時に以下のエラーになります。
error 145: Only valid in -lang deprecated or fblite or qb, found 'Call' in '*******'
(Call を削除するか、-lang fblite などでコンパイルして下さい。)
-lang qb では、
sub が宣言される前に、コードで
sub を呼ぶのに、これを使用できます。
関数は、
Byref As Any で渡された全てのパラメータについて、暗黙のうちに、
Declare です。
注意:
関数が宣言されるまで、パラメタの型照合をしないので、型が正しく合致するのを保証するのは、プログラマ次第です。
例:
'' -lang qb か -lang fblite で、コンパイルしてください
#lang "fblite"
Declare Sub foobar
(ByVal x As Integer, ByVal y As Integer)
Call foobar
(35, 42)
Sleep
Sub foobar
(ByVal x As Integer, ByVal y As Integer)
Print x;
y
End Sub
''-lang qb か -lang fblite で、コンパイルしてください
#lang "fblite"
Function f ( ) As Integer
f = 42
End Function
Call f ' 関数 f を実行します。
Print f
Sleep
'' -lang qb で、コンパイルしてください
'$lang:
"qb"
Call mysub(15, 16) '' "mysub" を、それが宣言されるか、言及される前に、呼び出します。
Sleep
Sub mysub
(ByRef a As Integer, ByRef b As Integer)
Print a, b
End Sub
方言差:
QBからの違い:
-
手続きは、前もって宣言されている必要がありました。
-
QB での Call は、すべてのパラメタのコピーを作ります。このため、呼ばれた Sub の中の引数にされた変更は、呼ぶ側の変数には、反映されません。
参照: