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(); (52RD.com) |