FreeBASIC学习笔记——6.1 过程

        过程(即子程序)是可以在程序的任何时候调用的代码块。该代码可能需要执行多次,过程就是通过用单个子程序调用来代替这些代码块手段。过程还可以让用户扩展FreeBASIC语言以提供自定义命令。FreeBASIC内置的许多功能只是默认链接到的“运行库”的子程序。

        Sub关键字标记过程的开始,其结尾必须使用标有End Sub。Identifier表示过程名。过程的代码与模块中其他程序的代码分开执行,所以除了参数传递的变量外,只有是共享变量才可以在过程中使用。

        在默认语言规则-lang fb中,参数必须具有实际类型的,且不允许输入后缀。在-lang qb 和-lang fblite语言规则中,如果类型没有通过名称或类型后缀显式给出,那么它将被赋予一个默认类型。-lang qb语言规则中的默认类型为Single,而-lang fblite语言规则中的默认类型为Integer。

        过程可以指定如何传递参数,如“ByRef”或“ByVal”,如语法定义所示。如果参数为“ByRef”,则参数将传递变量的地址,对该变量进行的任何更改都会改变过程外变量。但是,如果一个参数传递给“ByVal”,则参数传递变量的数值,将其值赋值到一个新的变量中,对它的任何更改都不会影响到原来的变量。这里要注意的是String类型暂时不适用ByVal类型的参数传递。参数在设置一个默认值时即成为可选参数,在调用时可以按默认值输出,也可以赋值新的参数值。

        Static说明符表示在过程中定义的所有局部变量的值应在调用之后保留。Sub与Function本质上相同,Sub可以使用Return语句,但不可以有返回值。程序在遇到Return语句后马上返回,不会再执行之后的任何代码。

        第二种语法分别使用Constructor和Destructor关键字定义构造函数或析构函数。构造函数子程序在模块中的第一行代码之前执行,而析构函数在模块退出时执行。请注意构造函数和析构函数的公共访问说明符和空参数列表。

语法:

FreeBASIC学习笔记——6.1 过程_第1张图片

例如:自定义过程

FreeBASIC学习笔记——6.1 过程_第2张图片

过程调用:

FreeBASIC学习笔记——6.1 过程_第3张图片

运行结果:

FreeBASIC学习笔记——6.1 过程_第4张图片

你可能感兴趣的:(FreeBASIC学习笔记,FreeBASIC,FireFly,教程,过程,子程序)