我正在处理网络数据流解析,想知道是否有办法将数据流直接映射到数据结构。
例如,我想要定义RTP协议的数据结构如下。
class RTPHeader
{
int version:2; // The first two bits is version.
int P:1; // The next bits is an field P.
int X:1;
int CC:4;
int M:1;
int PT:7;
int sequenceNumber;
int64 timestamp;
.....
};
并且这样使用它。
RTPHeader header;
memcpy(&header, steamData, sizeof(header));
但是由于C++编译器会在成员之间插入填充字节,有没有办法控制它,使得成员之间不加入任何填充(包括位字段成员)?
这个问题不是重复的如何消除结构体数据成员之间的填充字节,因为我的示例中可能有位字段。