2.4.1 通用转换
在FreeBASIC中将表达式转换为指定的数据类型有多种函数,根据数据类型不同可以选择该类型的函数,也可以使用通用的类型转换函数Cast。语法如下:
例如:
将Expression 转换为不同的DataType(数据类型)。这是转换运算符的一般形式,比诸如CInt或CDbl之类的转换更加通用,因为它们可以用于具有Cast操作符的类型,但不具有内置关键字。这里要注意,如果要使用专门用于转换为不同类型指针的运算符,必须使用CPtr进行强制转换。
CPtr是用来将指针表达式转换为指定的数据类型指针的函数(具体使用在 指针章节说明),语法如下:
将Expression 转换为PointerDataType。PointerDataType 必须是指针类型(例如一个DataType Ptr或一个Any Ptr)或一个Type(别名,与C的typedef功能类似)。 Expression 可能是不同的指针类型,或者是Integer。注意:目前,FreeBASIC实际上并不强制指定PointerDataType是一个指针,将来的FreeBASIC版本可能对此作出改变。所以如果你尝试转换为非指针,则会显示警告。
2.4.2 转换为整数型
每个整数类型都有一个转换函数对应,函数参数可以是任何数值,字符串或指针数据类型,返回值为对应的整数类型。具体转换函数及其类型如表2-4所示。表2-4 整数转换函数及其类型
转换函数 | 返回类型 | 说明 |
CByte | Byte |
|
CUByte | UByte |
|
CShort | Short |
|
CUShort | UShort |
|
CLng | Long |
|
CULng | ULong |
|
CInt | Integer |
|
CUInt | UInteger |
|
CLngInt | LongInt |
|
CULngInt | ULongInt |
|
CSign | 有符号数 |
|
CUnsg | 无符号数 |
|
2.4.3 转换为浮点型
浮点类型有两个转换函数,函数参数可以是任何数值,字符串或指针数据类型,返回值为对应的整数类型。具体转换函数及其类型如表2-5所示。表2-5 浮点转换函数及其类型
转换函数 | 返回类型 | 说明 |
CSng | Single |
|
CDbl | Double |
|
2.4.4 字符与数值相互转换
数值无法直接转换成字符串,需要用转换函数转换,根据字符串的类型不同有Str和WStr两种。同时,字符串在连接时可以用“+”符号和“&”符号,“+”符号只能连接两个字符串类型的数据,其中不能出现数值;而“&”符号可以连接字符串及数值等数据,在遇到数值时,编译器会自动强制转换成字符串。转换函数如表2-6所示。表2-6 字符与数值转换函数及类型
转换函数 | 返回类型 | 说明 |
Str | String |
|
WStr | WString |
|
Val | Double | 如果字符串的第一个字符无效,Val将返回0 |
ValInt | Long |
|
ValUInt | ULong |
|
ValLng | LongInt |
|
ValULng | ULongInt |
|