词法约定(VFB教程2-2)

  勇芳 2018-2-16 2964

此处为VisualFreeBasic编程教程(从零开始学或VB进阶)的子章节部分,全部目录点链接。


注释

注释是编译器将忽略的文本区域,但可能包含对程序员有用的信息。一些例外是可能出现在某些类型的评论中的元命令。

单行注释

单引号(')可用于指示注释,并可能在源行上的其他关键字后显示。声明的其余部分将被视为注释。

' comment text

注释语句:Rem

以Rem开头的源代码语句表示该行的其余部分是注释,不会被编译。Rem行为与上述相同,除了它必须是语句中的第一个关键字。

Rem comment

多行注释

多行注释用标记/'和'/标记。两个标记之间的所有文本都被认为是注释文本,没有被编译。

多行注释可以跨越几行,也可以在语句中间使用。注释结束后,声明将继续被解析为正常(即使注释超过换行符)。

/' Multi-line
   comment '/
Print "Hello" /' embedded comment'/ " world"

注意:如果FreeBASIC在不在多行注释中遇到密切注释标记,则由于单引号,它会将其视为正常的单行注释。

注释后续行

多行语句中的行连续字符(_)之后可能会出现单行注释。FreeBASIC不解析行继续字符后的文本,所以你不能在它们之后打开多行注释。

Print _ ' line
    "This is part of the previous line's statement"

标识符规则

FreeBASIC符号的命名约定

标识符是在其范围或Namespace内唯一标识变量,Type,Enum,Function,Sub或Property的符号名称。

标识符可以只包含大小写拉丁字符a - z和A - Z),数字(0 - 9)和下划线字符(_)。标识符的第一个字符必须是字母或下划线,而不是数字。

标识符不区分大小写:FOO和foo(以及大写和小写的所有其他排列)引用相同的符号。

标识符可能在末尾有一个类型后缀,表示标准数据类型之一:

%Integer

&Long

!Single

#Double

$String

通常不会使用这些符号,也不允许使用。


替代方案是明确的 - 例如Dim As Integer foo或Dim foo As Integer而不是Dim foo%


文本

非变量编译时字符串和数值。

文本是直接在源代码中指定的数字或字符串。可以通过将它们赋值给变量或常量,将它们传递给过程或在表达式中使用它们来使用字面值。

数字文本有两种形式 - 整数和浮点数。

整数文本

十进制

小数位数(0 1 2 3 4 5 6 7 8 9)。

Dim x As Integer = 123456
Dim b As Byte = -128

十六进制

“&H”,后跟十六进制数字(0 1 2 3 4 5 6 7 8 9 A B C D E F)。

Dim x As Integer = &h1E240
Dim b As Byte = &H80

八进制

“&O”,后跟八进制数字(0 1 2 3 4 5 6 7)

Dim x As Integer = &O361100
Dim b As Byte = &O200

二进制

“&B”,后跟二进制数字(0 1)

Dim x As Integer = &B11110001001000000
Dim b As Byte = &B10000000


整数大小后缀

如果未提供整数文本后缀,则会自动计算保存文本所需的数字字段大小。指定大小后缀保证编译器将一个数字视为一个特定的整数大小。

整数文本以

“%”被认为是32/64(取决于平台)位整数。(Integer)

“L”,“&”被视为有符号的32位长整数。(Long)

“U”被视为无符号32/64(取决于平台)位整数。(UInteger)

“UL”被视为无符号32位整数。(Ulong)

“LL”被视为带符号的64位整数。(LongInt)

“ULL”被视为无符号的64位整数。(ULongInt)

前缀,后缀和十六进制字母数字都不区分大小写。

Dim a As Long = 123L
Dim b As UInteger = &h1234u
Dim c As LongInt = 76543LL
Dim d As ULongInt = &b1010101ULL

浮点文本

浮点数以十进制数表示,可以是正数或负数,具有小数部分,可选地指数。浮点文本的格式如下:

number[.[fraction]][((D|E) [+|-] exponent)|(D|E)|][suffix]

或 

.fraction[((D|E) [+|-] exponent)|(D|E)|][suffix]

默认情况下,没有指数或后缀的浮点数被视为双精度浮点值,其中7位或更少的数字被认为是单精度。

Dim a As Double = 123.456
Dim b As Double = -123.0

放在数字/分数部分之后的字母“D”或“E”允许给出一个指数。指数可以用正号或负号(“+”)或减号(“-”)指定。没有符号的指数是正数。

在信之后不需要指数,所以该字母只能用于指定类型。“D”指定双精度浮点数。“E”使用默认精度指定浮点数。当字母与后缀结合使用时(见下文),后缀表示的类型会覆盖字母指定的类型。

Dim a As Double = -123.0d
Dim b As Double = -123e
Dim c As Double = 743.1e+13
Dim d As Double = 743.1D-13
Dim e As Double = 743.1E13
Dim f As Single = 743D!

数字上的“!”或“F”后缀指定单个精度(总共32位)浮点值。后缀“#”指定双精度浮点数。

请注意,字母后缀和指数说明符都不区分大小写。

Dim a As Single = 3.1!
Dim b As Single = -123.456e-7f
Dim c As Double = 0#
Dim d As Double = 3.141592653589e3#

字符串文本

字符串文本是包含在两个双引号之间的一系列字符。字符序列已转义或未转义。

双引号可以在字符串文本中使用两个双引号在一起指定。

Print "Hello World!"
Print "That's right!"
Print "See the ""word"" contained in double quotes."

字符串字面值可以包含转义序列,如果字符串文本以! Operator(转义字符串文本)为前缀。有关接受的转义序列的列表,请参阅转义序列.

Print !"Hello\nWorld!"

标签

定义程序中的位置。

语法

symbolname:

在Goto可以跳转到的程序中定义一个地方。

symbolname 标签必须以冒号(:)字符结尾。

Goto beginning 
beginning:
Print "你好,世界!"

行继续符(长行)

代码行末尾的单个_(下划线)字符告诉编译器该行在下一行中继续。这允许单个语句(代码行)分散在输入文件中的多行中,这可以是一个很好的格式化帮助。

Dim myvariable _
As Integer

这通常用于使很长的代码行更容易阅读,例如具有很多参数的过程声明:

Declare Sub drawRectangle( ByVal x As Integer, ByVal y As Integer, _
                           ByVal w As Integer, ByVal h As Integer )

'' or:

Declare Sub drawRectangle _
    ( _
        ByVal x As Integer, _
        ByVal y As Integer, _
        ByVal w As Integer, _
        ByVal h As Integer _
    )

_行连续字符可以插入一行代码中的任何一点。它不会在评论内。

在标识符或关键字后面添加_行延续字符时要小心。它应该与至少一个空格字符分开,否则将被视为标识符或关键字的一部分。

Dim As Integer a_     '错误写法
Dim As Integer a _   '正确写法  
= 5

警告:当使用_行连续字符将错误的代码行分散在多行数据块上时,错误消息仅指块的最后一行。

最新回复 (0)
返回
联系勇芳