Symbian c++中的数据类型
来源:互联网 发布:淘宝店取名字大全 编辑:程序博客网 时间:2024/05/22 10:39
在Symbian中,很多C++基本类型都被重新定义了,最好使用Symbian的,理由如下:
· 所有Symbian API都是用的Symbianc重定义的
· 将来Symbian OS由32位转为64位时,支持性更好
· 这本身就是Symbian C++ Coding Standards所要求的
Integers
typedef signed int TInt; C++中的signed int,32位,基本用法类似。
typedef unsigned int TUint; 一般用于计数器(Counter)或者标记(Flags)。
其他Int类型:TInt64, TInt32, TInt16,TInt8; 同时有一份TUint的版本。
Text
text类型在Symbian编程中基本不用,而一般采用描述符(descriptor)。TText默认是16位的。
Boolean
typedef int TBool;有两个枚举值:ETrue和EFalse。TBool变量最好不要直接和ETure和EFalse比较。如下:
TBool flag = ETrue;
if (flag) // if (!flag)
{
flag = EFalse;
}
Floating Point
对浮点数的支持视处理器而定,如果没有FPU,效率非常低,所以最好是不要用浮点数。如果一定要用,尽量转化为整数操作。
typedef float TReal32; typedef double TReal64; typedef double TReal;
TAny
typedef void TAny;
TAny一般只用作指针,其他情况下用void比较好。
TAny* MyFunction(); void MyOtherFn();
TAny* 在很多Symbian API中都用到了,如:
static TUint8* Copy( TAny* aTrg, const TAny* aSrc, TInt aLength);
Enumerations
enum TState {EOff, Eon, EInit};
Enumeration类型应该以T开头,而枚举值应该以E开头。
TState state = GetState();
if (state == EOn)
{
//Do something here
}
Coding Conventions
T类:只包含值,而不包含指针以及外部的资源,在栈上分配空间。
TVersion osVersion = User::Version();
C类:所有需要分配内存的类都必须从CBase继承并且以C开头。
class CExample : public CBase
{
private:
CDesCArrayFlat* iArray;
}
CExample* example = new (ELeave) CExample;
R类:包含指向某个资源的handler。
RTimer timer;
timer.CreateLocal();
M类:定义一个接口,一般只包含纯虚函数,不包含成员数据,减少类之间的依赖,用来接受回调消息。
class MEikStatusPaneObserver
{
public:
virtual void HandleStatusPaneSizeChange() = 0;
}
任何实现MEikStatusPaneObserver接口的类都必须实现HandleStatusPaneSizeChange()函数。
Variable Naming Conventions
· 成员变量以“i”开头
· 参数以“a”开头
· 动态变量随便,以小写字母开头
· 常量以“K”开头
· 尽量不要使用全局变量,不能使用全局静态变量。
Functions
· 函数以大写字母开头,如AddFileNameL();
· 以D结尾表示deletion of an object
· 以L结尾表示函数可能leave
· 以C结尾表示一个item被放到cleanup stack
Casting
Casting用于在类(classes)和类型(types)之间作转化,Symbian中仍然可以使用C中语法。
dynamic_cast:不支持,Symbian中没有RTTI。
static_cast:把一个基类转化为一个继承类。
TInt intValue = 0xff;
TUint8 byteValue = static_cast<TUint8>(intValue);
reinterpret_cast:把一个指针类型转化为另外一个指针类型,如integer转化为point类型或者相反。
TUint32 fourBytes = 0;
TUint8* bytePtr = reinterpret_cast<TUint8*> (&fourBytes);
bytePtr++;
*bytePtr = 0xFF;
const_cast:移除一个类的const属性。
- Symbian c++中的数据类型
- c中的数据类型
- C语言中的数据类型
- Objective-C中的数据类型
- C语言中的数据类型
- C语言中的数据类型
- C 语言中的数据类型
- Object-c 中的数据类型
- C语言中的数据类型
- Object-c 中的数据类型
- C语言中的数据类型
- c中的数据类型
- 【C#】C#中的数据类型
- C语言中的数据类型
- c中的数据类型
- c语言中的数据类型
- C/C++ 中的数据类型
- Symbian OS 基本数据类型
- HTTP Headers
- linux学习之--硬盘安装ubuntu方法(转自ubuntu中文论坛fff969)
- 水题之路--拼数
- Outlook 最小化到任务托盘
- zend studio,wamp
- Symbian c++中的数据类型
- ZSC_ACM 协会
- 提高级源码:三柱汉诺塔相关扩展问题(百度帖吧)
- C++易错知识点总结(二)...
- simply scheme 第十四章 练习
- View 拖动&插入
- 用GCC编译调试第一个C程序
- 关于Excel表生成图的横坐标按照表中数据智能分布
- 常用GUI库列表