Symbian OS 使用的是面向对象的C++, 但是又和标准的C++有一些区别。 比如Symbian OS没有标准的异常处理(Exception), 因为设计Symbian OS的时候还C++还没有把异常处理标准化。 所以Symbian设计了自己得异常处理机制: TRAP, leave。 另外就是今天要讲的基本类型。 Symbian 基本上不使用任何标准的C++基本类型, 众所周知,不同的C++编辑器对int, unsigned int的长度理解不同, 所以Symbian OS中使用 TInt8,TInt16,TInt32。
但是,如果你么没有很好的理由使用某一特定的长度时,应该使用Tint。 其他很多类型也遵守这个原则。 比如以后要讲的TBuf8, TBuf16可最好用为TBuf。
类 型 | 描 述 |
TInt8, TUint8 | 8 位 整数 |
TInt16, TUint16 | 16 位 整数 |
TInt32, TUint32 | 32位 整数 |
TInt, TUint | (32位)整数 |
TReal32, TReal64 | 实数 |
TText8, TText16 | 字符, 相当于 unsigned char, unsigned short int |
TBool | 布尔 |
TAny | 相当于void |
代码规范
Symbian OS 使用很多代码规范, 使用他们可以增强Symbain 代码的可读性, 有些规范甚至是需要严格遵守的, 比如类的命名:
种 类 | 例 子 | 描 述 |
T classes | TDesC, TPoint | 这个类可以向基本类型一样使用,因为他们通常很小,而且不使用heap所以也没有析构函数 |
C classes | CConsoleBase, CActive | 这个类是Symbian使用最多的类,C代表他们从CBase类继承而来, 他们必须有析构函数因为他们的对象创建在heap中 |
R classes | RFile, RTimer | R代表资源(Resource),它们只是一个系统资源的句柄,他们本身被创建在Stack上, 但是他们所使用的资源被创建在heap上,使用完毕需要Close() |
M classes | MEikMenuObserver | 这个类是一个空的接口,使用的时候需要从它继承 |
static classes | User, Math | 这个类只有静态函数, 一般都是库函数 |
Structs | SEikControlInfo | c - struct |
变量命名
种 类 | 例 子 | 描 述 |
枚举 | EMonday,ETuesday | E 代表枚举 |
定量 | KMaxFileName | K 代表定量 |
成员变量 | iDevice, iX | i 代表成员变量 |
参数 | aDevice, aX | a 代表参数 |
局部变量 | device, x | 局部变量没有固定的规范 |