モジュールレベルか、メンバー手続きを、宣言します。
構文:
Declare Sub name [ param_list ]
Declare Function name [ param_list ] [ Byref ] As return_type
Declare Operator op_symbol param_list [ [ Byref ] As return_type ]
Type T
End Type
パラメタ:
param_list
パラメタを、コンマで区切ってカッコで囲んだ一覧。
return_type
name
手続きの名前かシンボル。
op_symbol
演算子の、名前かシンボル。
T
新しくユーザ定義する型の名前。
記述:
Declare 命令文は、
Sub,
Function,
Operator,
Constructor,
Destructor を宣言します。
手続きは、どこかで定義する必要がありますが、その定義を見ることなくコード内で参照できます。
つまり、
Declare 命令文は、手続きの存在を紹介していて、他の場所で定義されていることを伝えます。
たとえば、関数はソース・モジュールの上部で宣言され、呼び出され、ソースファイルの下部で定義されます。下の例を参照して下さい。
手続きの宣言は、宣言の前に
Declare キーワードがあり、本文がないことを除いて、手続きの定義の最初の行とほとんど同じです。
また、
Export などの属性は宣言から除外されます。
QB としての
FreeBASIC は、関数が、別のソースファイルで、または、同じファイルでも、呼び出す場所より後ろで定義されてる場合は、宣言が必要ですが、それ以外では、関数の宣言は必要ありません。
これは、
Type 本体内で宣言された手続きには当てはまりません。
Type 本体は、使う前に、
常に Type 本体で最初に宣言する必要があります。
Type 手続きを宣言しないと、エラーが発生します。
関数を使う全てのファイルは、宣言を持たなければなりません。このため、通常、宣言は、どのモジュールでも関数が使えるようにするために、1つ以上の
include files に保たれます。そして、モジュールは、
#include 命令文を使う必要が有ります。
例:
モジュールレベル関数:
'' 二つの整数を取って、一つの整数を返す、合計関数 を宣言します。
Declare Function sum( As Integer, As Integer ) As Integer
Print "420 と 69 の合計は: " & sum( 420, 69 ) '' 関数 sum を呼びます。
Sleep
'' 二つの整数を取って、一つの整数を返す、合計関数 を定義します。
Function sum( a As Integer, b As Integer ) As Integer
Return a + b
End Function
型レベルの Sub:
Type my_type
my_data As Integer
Declare Sub increment_data( )
End Type
Sub my_type.increment_data( )
my_data += 1
End Sub
Dim As my_type an_instance
an_instance.my_data = 68
an_instance.increment_data( )
Print an_instance.my_data
Sleep
方言差:
QBからの違い:
参照: