Symbian 基本数据类型及命名规范 |
| 作者:csdn 来源:csdn 发布时间:2006-11-30 22:12:39 |
Basic Types在Symbian中,很多C++基本类型都被重新定义了,最好使用Symbian的,理由如下:
Integers typedef signed int TInt; C++中的signed int,32位,基本用法类似。 typedef unsigned int TUint; 一般用于计数器(Counter)或者标记(Flags)。 其他Int类型:TInt64, TInt32, TInt16,TInt8; 同时有一份TUint的版本。 Texttext类型在Symbian编程中基本不用,而一般采用描述符(descriptor)。TText默认是16位的。 Booleantypedef int TBool; 有两个枚举值:ETrue和EFalse。TBool变量最好不要直接和ETure和EFalse比较。如下: TBool flag = ETrue; Floating Point 对浮点数的支持视处理器而定,如果没有FPU,效率非常低,所以最好是不要用浮点数。 如果一定要用,尽量转化为整数操作。 typedef float TReal32; typedef double TReal64; typedef double TReal; TAnytypedef void TAny; TAny一般只用作指针,其他情况下用void比较好。 TAny* MyFunction(); void MyOtherFn(); TAny* 在很多Symbian API中都用到了,如: static TUint8* Copy( TAny* aTrg, const TAny* aSrc, TInt aLength); Enumerationsenum TState {EOff, Eon, EInit}; Enumeration类型应该以T开头,而枚举值应该以E开头。 TState state = GetState(); Coding Conventions
T类:只包含值,而不包含指针以及外部的资源,在栈上分配空间。 TVersion osVersion = User::Version(); C类:所有需要分配内存的类都必须从CBase继承并且以C开头。 class CExample : public CBase CExample* example = new (ELeave) CExample; R类:包含指向某个资源的handler。 RTimer timer; M类:定义一个接口,一般只包含纯虚函数,不包含成员数据,减少类之间的依赖,用来接受回调消息。 class MEikStatusPaneObserver 任何实现MEikStatusPaneObserver接口的类都必须实现HandleStatusPaneSizeChange()函数。 Variable Naming Conventions
Functions
Casting Casting用于在类(classes)和类型(types)之间作转化,Symbian中仍然可以使用C中语法。 dynamic_cast:不支持,Symbian中没有RTTI。 static_cast:把一个基类转化为一个继承类。 TInt intValue = 0xff; reinterpret_cast:把一个指针类型转化为另外一个指针类型,如integer转化为point类型或者相反。 TUint32 fourBytes = 0; const_cast:移除 Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1334791 |
| [] [返回上一页] [打 印] |
|
文章评论 |
