Здравствуйте, Alirp, Вы писали:
A>Здравствуйте, Alex34, Вы писали:
A>В моем случае я использую битовые структуры следующим образом:
A>unsigned char *send_buf; A>send_buf = new гтышптув char [MAX_LEN_BUF]; A>_mass_1 *s = (_mass_1 *) &send_buf[0];
A>Причем может идти подряд ни одна битовая структура, поэтому важно чтобы данные шли подряд A>и соответствовали размеру.
судя по всему речь идет у тебя об отображении буффера канала связи на структуру данных в памяти , которая по этому каналу передаються.
Мы раньше тоже так делали , но после некоторых проблем поменяли концепцию.
Во первых проблема , которую ты упомянул. Нельзя надеятся на компилятор , как он разместит данные в памяти. Во вторых всевозможные проблемы с Big/Little Endian и т.д.
Мы создали фреймворк который производит сериализацию/десериализацию данных в буффер сообщения учитывая позицию каждого элемента в битах и длину этого елемента в битах. То есть буффер сообщения СТРОИТСЯ , а не ОТОБРАЖАЕТСЯ на память.
Все это написал , надеясь что понял твою проблему.