标准数据类型:8位字符串
语法
说明
这个
ZString是一个C风格的固定大小的字符数组。它没有描述符,因此它的长度被计算得更快,将其作为参数传递给函数。当变量具有固定的
size 时,FreeBASIC通过将内容截断长度为
size - 1来避免赋值时可能发生的溢出。
这个
ZString Ptr可以指向标准
ZString,也可以用于实现“用户管理”
ZString,在这种情况下
Allocate/
Reallocate/
Deallocate必须用于调整大小 - 应用它,并由用户来避免溢出。
字符串的末尾用空字符(
0ASCII)标记。这是由FreeBASIC字符串处理函数自动添加的。当字符串创建时,将附加一个空字符,并且将通过扫描第一个空字符的字符串来计算长度。空字符(例如,
Chr(0))可能永远不会包含在
ZString的文本中,否则字符串的其余部分将被截断。
在
ZString中,
Len返回包含字符串的大小,
SizeOf返回赋值给
ZString的空间。
SizeOf只有当编译器知道大小时才有效,即直接传递固定大小的
ZString变量,而不是作为取消引用的指针或
ByRef函数参数。
提供这种类型可以方便地与C库进行连接,也可以替换不能通过指针管理的固定长度的字符串。任何内在的字符串函数,如
Left也可以与
ZString一起使用,加上任何字符串运算符。
例子
Dim As ZString * 13 str1 => "你好,世界"
Print str1
Print Len(str1) '返回12,它包含的字符串的大小
Print SizeOf(str1) '返回13,变量的大小
Dim As ZString Ptr str2
str2 = Allocate( 13 )
*str2 = "你好,世界"
Print *str2
Print Len(*str2) '返回12,它包含的字符串的大小
方言差异
与QB差别
参考