Есть ли способ контролировать заполнение между членами структуры (в том числе битовое поле) в C ++?

Я работаю над анализом сетевого потока данных, мне интересно, есть ли способ сопоставить поток данных непосредственно со структурой данных.

Например, я хочу определить структуру данных для протокола 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 ++ будет вставлять заполнение между элементами, есть ли способ контролировать это, чтобы дополнение не добавлялось между элементами (включая элементы битовых полей)?

Этот вопрос не является дубликатомКак избавиться от байтов заполнения между элементами данных структуры потому что в моем примере могут быть битовые поля.

Ответы на вопрос(3)

Ваш ответ на вопрос