Declare
 
声明一个模块级别或成员程序

语法

Declare Sub name [ param_list ]
Declare Function name [ param_list ] As return_type
Declare Operator op_symbol param_list [ As return_type ]

Type T
Declare Constructor [ param_list ]
Declare Destructor
Declare Sub name [ param_list ]
Declare Function name [ param_list ] As return_type
Declare Operator name [ param_list ] [ As return_type ]
Declare Property name [ ( [ param_list ] ) ] [ As return_type ]
End Type

参数

param_list
括号用逗号分隔的参数列表。
return_type
返回类型为FunctionOperatorProperty过程。
name
例程的名称或符号。
op_symbol
操作符的名称或符号。
T
新的用户定义类型的名称。

说明

Declare声明声明一个FunctionFunctionOperatorConstructorDestructor.我们将其中的一个称为例程。
该例程可以在代码中参考,而不必看到它的定义,尽管它必须在某处被定义。本质上,Declare语句引入了一个例程,并声明其定义在别处。例如,一个函数可以在源模块的顶部声明,被调用,然后定义在源文件的底部,如下例所示。

例程的声明与其定义的第一行几乎相同,除了声明前面有Declare关键字,没有正文。此外,诸如出口之类的属性也不在声明之内。

FreeBASIC作为QB,不需要声明功能,除非它们被定义在不同的源文件中,或者在同一个文件中被调用。在类型机构内声明的例程不再适用,在类型的身体使用前必须先声明它们。如果您不声明类型例程,您将收到错误。

由于每个使用函数的文件必须具有其声明,所以声明通常保留在一个或多个include files 中,以允许任何使用#include语句的模块使用该函数。

例子

模块级功能:
''声明函数sum,它需要两个整数并返回一个整数
Declare Function sum( As Integer, As Integer ) As Integer

   Print "420和69的总和是:" & sum( 420, 69 )    ''调用函数和

''定义函数和,它需要两个整数并返回一个整数
Function sum( a As Integer, b As Integer ) As Integer
   Return a + b
End Function


类型级子
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

方言差异

与QB差别

  • 在FreeBASIC中,参数名称是可选的。

参考