Nokia官方培训(Symbian 4300)笔记(四)--基本数据类型及命名规范
2008-04-06 13:28
609 查看
[align=left]Basic Types[/align]
[align=left] 在Symbian中,很多C++基本类型都被重新定义了,最好使用Symbian的,理由如下:[/align]
所有Symbian API都是用的Symbianc重定义的
将来Symbian OS由32位转为64位时,支持性更好
这本身就是Symbian C++ Coding Standards所要求的
[align=left] Integers[/align]
[align=left] typedef signed int TInt; C++中的signed int,32位,基本用法类似。[/align]
[align=left] typedef unsigned int TUint; 一般用于计数器(Counter)或者标记(Flags)。[/align]
[align=left]其他Int类型:TInt64, TInt32, TInt16,TInt8; 同时有一份TUint的版本。[/align]
[align=left]Text[/align]
[align=left] text类型在Symbian编程中基本不用,而一般采用描述符(descriptor)。TText默认是16位的。[/align]
[align=left]Boolean [/align]
[align=left] typedef int TBool;有两个枚举值:ETrue和EFalse。TBool变量最好不要直接和ETure和EFalse比较。如下:[/align]
[align=left]TBool flag = ETrue;
if (flag) // if (!flag)
{
flag = EFalse;
}[/align]
[align=left] Floating Point[/align]
[align=left] 对浮点数的支持视处理器而定,如果没有FPU,效率非常低,所以最好是不要用浮点数。如果一定要用,尽量转化为整数操作。[/align]
[align=center]typedef float TReal32; typedef double TReal64; typedef double TReal;[/align]
[align=left]TAny[/align]
[align=left] typedef void TAny;[/align]
[align=left]TAny一般只用作指针,其他情况下用void比较好。[/align]
[align=left]TAny* MyFunction(); void MyOtherFn();[/align]
[align=left]TAny* 在很多Symbian API中都用到了,如:[/align]
[align=left]static TUint8* Copy( TAny* aTrg, const TAny* aSrc, TInt aLength);[/align]
[align=left]Enumerations[/align]
[align=left]enum TState {EOff, Eon, EInit};[/align]
[align=left]Enumeration类型应该以T开头,而枚举值应该以E开头。[/align]
[align=left]TState state = GetState();
if (state == EOn)
{
//Do something here
} [/align]
[align=left]Coding Conventions[/align]
[align=left] T类:只包含值,而不包含指针以及外部的资源,在栈上分配空间。[/align]
[align=left]TVersion osVersion = User::Version();[/align]
[align=left] C类:所有需要分配内存的类都必须从CBase继承并且以C开头。[/align]
[align=left]class CExample : public CBase
{
private:
CDesCArrayFlat* iArray;
} [/align]
[align=left]CExample* example = new (ELeave) CExample;[/align]
[align=left] R类:包含指向某个资源的handler。[/align]
[align=left]RTimer timer;
timer.CreateLocal();[/align]
[align=left] M类:定义一个接口,一般只包含纯虚函数,不包含成员数据,减少类之间的依赖,用来接受回调消息。[/align]
[align=left]class MEikStatusPaneObserver
{
public:
virtual void HandleStatusPaneSizeChange() = 0;
}[/align]
[align=left]任何实现MEikStatusPaneObserver接口的类都必须实现HandleStatusPaneSizeChange()函数。[/align]
[align=left]Variable Naming Conventions[/align]
成员变量以“i”开头
参数以“a”开头
动态变量随便,以小写字母开头
常量以“K”开头
尽量不要使用全局变量,不能使用全局静态变量。
[align=left]Functions[/align]
函数以大写字母开头,如AddFileNameL();
以D结尾表示deletion of an object
以L结尾表示函数可能leave
以C结尾表示一个item被放到cleanup stack
[align=left]Casting[/align]
[align=left] Casting用于在类(classes)和类型(types)之间作转化,Symbian中仍然可以使用C中语法。[/align]
[align=left] dynamic_cast:不支持,Symbian中没有RTTI。[/align]
[align=left] static_cast:把一个基类转化为一个继承类。 [/align]
[align=left]TInt intValue = 0xff;
TUint8 byteValue = static_cast<TUint8>(intValue);[/align]
[align=left] reinterpret_cast:把一个指针类型转化为另外一个指针类型,如integer转化为point类型或者相反。[/align]
[align=left]TUint32 fourBytes = 0;
TUint8* bytePtr = reinterpret_cast<TUint8*> (&fourBytes);
bytePtr++;
*bytePtr = 0xFF; [/align]
[align=left] const_cast:移除一个类的const属性。[/align]
[align=left] [/align]
[align=left]读后感[/align]
[align=left]Symbian编程中基础的基础,属于每天都会碰到的东西。[/align]
[align=left]最后部分的casting有点难懂,其他的看习惯了也就好了。[/align]
入乡随俗,既然选择了Symbian,就用Symbian的惯例去写程序吧。
相关文章推荐
- Symbian 学习笔记之一命名规范与数据类型
- Nokia官方培训(Symbian 4300)笔记(三)--Carbide.c++开发环境
- Nokia官方培训(Symbian 4300)笔记 -- 第三篇 Carbide.c++开发环境
- Nokia官方培训(Symbian 4300)笔记 -- 第二篇 Symbian OS Basics
- Nokia官方培训(Symbian 4300)笔记(五)--Memory Management
- Nokia官方培训(Symbian 4300)笔记 -- 第四篇Symbian OS Basic
- Nokia官方培训(Symbian 4300)笔记 -- 第三篇 Carbide.c++开发环境
- Nokia官方培训(Symbian 4300)笔记 -- 第五篇Memory Management
- Nokia官方培训(Symbian 4300)笔记(六)--Descriptors
- Nokia官方培训(Symbian 4300)笔记 -- 第六篇Descriptors
- Nokia官方培训(Symbian 4300)笔记 -- 第四篇Symbian OS Basic
- Nokia官方培训(Symbian 4300)笔记
- Nokia官方培训(Symbian 4300)笔记 -- 第六篇Descriptors
- Nokia官方培训(Symbian 4300)笔记 -- 第一篇 Forum Nokia
- Nokia官方培训(Symbian 4300)笔记
- Java学习笔记四。设计模式、基本数据类型、包装类、异常、断言、包、访问权限、命名规范、jar
- Nokia官方培训(Symbian 4300)笔记(摘录)
- Nokia官方培训(Symbian 4300)笔记(一)--Forum Nokia
- Nokia官方培训(Symbian 4300)笔记(二)-- Symbian OS Basics
- Nokia官方培训(Symbian 4300)笔记 -- 第二篇 Symbian OS Basics