Заставить структуру C++ плотно упаковатьC++

Программы на C++. Форум разработчиков
Anonymous
 Заставить структуру C++ плотно упаковать

Сообщение Anonymous »

Я пытаюсь прочитать двоичный файл. Проблема в том, что создатель файла не потратил времени на то, чтобы правильно выровнять структуры данных по их естественным границам, и все упаковано плотно. Это затрудняет чтение данных с использованием структур C++.

Есть ли способ заставить структуру плотно упаковываться?

Пример:

Код: Выделить всё

struct {
short a;
int b;
}
Приведенная выше структура состоит из 8 байтов: 2 для короткого a, 2 для заполнения, 4 для int b. Однако на диске данные имеют размер всего 6 байтов (без 2 байтов заполнения для выравнивания).

Имейте в виду, что фактические структуры данных составляют тысячи байтов и многие поля, включая пару массивов, поэтому я бы предпочел не читать каждое поле по отдельности.

Подробнее здесь: https://stackoverflow.com/questions/210 ... ck-tightly

Вернуться в «C++»