在传统的c/c++编程中,字符串通常都是以char数组的形式来实现,这样的实现简单灵活,但是同时也埋下了不小的隐患——操作的时候必须特别小心,否则很容易出现内存越界。为了解决这个问题,在Symbian中,存在着一组特殊的类来处理字符串,这就是描述符类。
根据数据的存储和访问方式,描述符类可以分成三种:
* 栈描述符,数据保存在栈中。
* 指针描述符,数据可以保存在栈中,也可以保存在堆中,类中保存的只是指针。
* 堆描述符。
常用的描述符类有:
类型 | 类名 | C等价 |
栈 | TBuf | char[] |
栈 | TBufC | const char[] |
指针 | TPtr | char * |
指针 | TPtrC | const char * |
堆 | RBuf | char * |
堆 | HBufC | const char * |
注:类名中结尾的C代表的是该描述符类是否为常量(const)