ZString
 
标准数据类型:8位字符串

语法

Dim variable As ZString * size
Dim variable As ZString Ptr

说明

这个 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,它包含的字符串的大小


方言差异

  • -lang qb 方言中不可用,除非使用别名__Zstring引用。

与QB差别

  • 新的FreeBASIC

参考