Symbian系统已经提供了一套已经定义好的内置的数据类型。
为了保证你的代码是编译器无关的,应当使用下面symbian系统提供的数据类型,而不要使用原生数据类型(native types,这里指标准C中的int ,char等)。
这个部分与c++标准库很大的不同!!!!!!!!
Int char等都不要用了~~~
1. 基本类型
TIntX
和
TUintX (
其中
X = 8, 16
和
32)
分别用来表示
8
位
, 16
位
和
32
位的有符号和无符号的整数。
一般情况下,使用TInt 和TUint就可以了,除非是在考虑代码优化或兼容性的时候,才会用到TInt8,TInt16这样的类型。
TInt
或
TUint
类型分别对应有符号和无符号的整数。
这个和avr程序中有点像,都有uintx的
Ø
TInt64.
在版本8.0之前,Symbian系统中不支持64位的算术运算,而是用两个32位的值来实现64位的整数,在8.0版本之后,TInt64和
TUInt64
才被定义为long long类型,真正使用64位的内置数据类型。
Ø
TReal32
和
TReal64 (TReal
相当于
TReal64)
这两个数据类型相当于单精度和双精度的浮点数,由于浮点数的运算要比整数慢,所以一般应尽量避免使用浮点数的运算。
Ø
TTextX (
其中
X = 8
或
16)
分别对应窄或宽的字符(注:所谓窄字符通常ASCII码字符,而宽字符是指unicode字符集的字符 )
Ø
TAny*
TAny* 意为指向任意内容的指针,在这种意义上讲,TAny相当于void, TAny* 相当于TAny*。但是,在某些场合下,void标示‘空’,如:
void
hello(void);
这时,不要将它改写为: TAny hello(TAny);
Ø
TBool
标示布尔类型。Symbian系统提供了两个常量:
ETrue (=1)
和
EFalse (=0)
,分别表示真和假。
注意:在Symbian系统中,TB
ool
被定义为int, 而ET
rue
和EF
alse
被定义为enum,所以,如果一个函数的返回值为TBool,不要用如下的代码来比较函数的返回值:
TBool
isLarger(TInt a, TInt b)
{
return (a>b)?ETrue:EFalse;
}
if(isLarger(4,3)==ETrue){...} //
错误,编译不过。
if(isLarger(4,3)){...} //
正确