声明一个模块级别或成员程序
语法
Declare Sub name [ param_list ]
Declare Function name [ param_list ] As return_type
Declare Operator op_symbol param_list [ As return_type ]
Type T
End Type
参数
param_list
括号用逗号分隔的参数列表。
return_type
name
例程的名称或符号。
op_symbol
操作符的名称或符号。
T
新的用户定义类型的名称。
说明
Declare声明声明一个
FunctionFunction,
Operator,
Constructor或
Destructor.我们将其中的一个称为例程。
该例程可以在代码中参考,而不必看到它的定义,尽管它必须在某处被定义。本质上,
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差别
参考