欢迎来到天天文库
浏览记录
ID:23558031
大小:501.00 KB
页数:25页
时间:2018-11-08
《诺基亚symbian手册汇编》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、诺基亚symbian手册汇编SymbianOSBasics BasicTypes在Symbian中,很多C++基本类型都被重新定义了,最好使用Symbian的,理由如下:·所有SymbianAPI都是用的Symbianc重定义的·将来SymbianOS由32位转为64位时,支持性更好·这本身就是SymbianC++CodingStandards所要求的Integers typedefsignedintTInt; C++中的signedint,32位,基本用法类似。 typedefunsignedintTUint; 一般用于计数器(Counter)或
2、者标记(Flags)。其他Int类型:TInt64,TInt32,TInt16,TInt8;同时有一份TUint的版本。Texttext类型在Symbian编程中基本不用,而一般采用描述符(descriptor)。TText默认是16位的。Boolean typedefintTBool;有两个枚举值:ETrue和EFalse。TBool变量最好不要直接和ETure和EFalse比较。如下:TBoolflag=ETrue;if(flag) //if(!flag){ flag=EFalse;}FloatingPoint 对浮点数的支持视处理器而定,如
3、果没有FPU,效率非常低,所以最好是不要用浮点数。如果一定要用,尽量转化为整数操作。typedeffloatTReal32; typedefdoubleTReal64;typedefdoubleTReal;TAny typedefvoidTAny;TAny一般只用作指针,其他情况下用void比较好。TAny*MyFunction(); voidMyOtherFn();TAny*在很多SymbianAPI中都用到了,如:staticTUint8*Copy(TAny*aTrg,constTAny*aSrc,TIntaLength);Enumeratio
4、nsenumTState{EOff,Eon,EInit};Enumeration类型应该以T开头,而枚举值应该以E开头。TState state=GetState();if(state==EOn){ //Dosomethinghere}CodingConventions T类:只包含值,而不包含指针以及外部的资源,在栈上分配空间。TVersionosVersion=User::Version(); C类:所有需要分配内存的类都必须从CBase继承并且以C开头。classCExample:publicCBase{private: CDesCArray
5、Flat*iArray;} CExample*example=new(ELeave)CExample; R类:包含指向某个资源的handler。RTimertimer;timer.CreateLocal(); M类:定义一个接口,一般只包含纯虚函数,不包含成员数据,减少类之间的依赖,用来接受回调消息。classMEikStatusPaneObserver{ public: virtualvoidHandleStatusPaneSizeChange()=0;}任何实现MEikStatusPaneObserver接口的类都必须实现HandleS
6、tatusPaneSizeChange()函数。VariableNamingConventions· 成员变量以“i”开头· 参数以“a”开头· 动态变量随便,以小写字母开头· 常量以“K”开头· 尽量不要使用全局变量,不能使用全局静态变量。Functions· 函数以大写字母开头,如AddFileNameL();· 以D结尾表示deletionofanobject· 以L结尾表示函数可能leave· 以C结尾表示一个item被放到cleanupstackCasting Casting用于在类(classes)和类型(types)之间作转
7、化,Symbian中仍然可以使用C中语法。 dynamic_cast:不支持,Symbian中没有RTTI。 static_cast:把一个基类转化为一个继承类。TIntintValue=0xff;TUint8byteValue=static_cast(intValue); reinterpret_cast:把一个指针类型转化为另外一个指针类型,如integer转化为point类型或者相反。TUint32fourBytes=0;TUint8*bytePtr=reinterpret_cast(&fourBytes);by
8、tePtr++;*bytePtr=0xFF; co
此文档下载收益归作者所有