勇芳软件 发表于 2018-2-26 21:00:53

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

此处为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[.][((D|E) [+|-] exponent)|(D|E)|]

.fraction[((D|E) [+|-] exponent)|(D|E)|]
默认情况下,没有指数或后缀的浮点数被视为双精度浮点值,其中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
警告:当使用_行连续字符将错误的代码行分散在多行数据块上时,错误消息仅指块的最后一行。

xiawan 发表于 2022-5-17 11:20:34


如此好贴,必须支持~~~
页: [1]
查看完整版本: 【VFB】词法约定(VFB教程2-2)