1. 定义
This is a descriptor class which provides a buffer of fixed length for containing, accessing and manipulating TUint8 data.
说明这是一个descriptor类,提供了固定长度的buffer,用于访问和使用TUnit8类型的数据。
2. 继承关系
TBuf 8 --> TBufBase8 --> TDes8 --> TDesC8。
class TBuf8 : public TBufBase8
{
...
protected:
TUint8 iBuf[__Align8(S)];
};
从类结构定义中可以看出,TBuf8保存的是TUnit8类型的数据。而TUnit8的定义为:
typedef unsigned char TUint8;
从其继承的类结构中(TDes8,TDesC8)也可以看出TBuf8类具有最大长度和当前数据长度。这些长度可以通过函数获得。
TBuf8<32> buffer; // 定义了缓冲区,其长度为32。
3. 位置
如果声明为自动变量,则保存在stack上。
4. 使用
因为在TBuf8中保存的是TUnit8类型,也就是unsigned char类型的数据,所以可以通过TUnit8数组赋值,也可以通过直接
append十六进制数,或者直接append字符,这些都是可以的。这是因为unsigned char的字符和其码值是对应的。
初始化和赋值
TUint8 data[6] = {0x00,0x01,0x02,0xAD,0xAE,0xAF};
// Put data into descriptor
buffer.Append(&data[0],sizeof(data));
// append the byt values
buffer.Append(0xFD);
// append the text character
buffer.Append(''A'');
取得长度和size以及最大长度
counter = buffer.Length();
buffer.MaxLength();