Wymusza ścisłe spakowanie struktury C ++
Próbuję odczytać plik binarny. Problem polega na tym, że twórca pliku nie potrzebował czasu, aby odpowiednio dopasować struktury danych do ich naturalnych granic i wszystko jest spakowane szczelnie. Utrudnia to odczyt danych przy użyciu struktur C ++.
Czy istnieje sposób na wymuszeniestruct
być ciasno zapakowanym?
Przykład:
struct {
short a;
int b;
}
Powyższa struktura ma 8 bajtów: 2 dlashort a
, 2 do wypełnienia, 4 doint b
. Jednak na dysku dane mają tylko 6 bajtów (nie mają 2 bajtów wypełnienia do wyrównania)
Należy pamiętać, że rzeczywiste struktury danych to tysiące bajtów i wiele pól, w tym kilka tablic, więc wolałbym nie czytać każdego pola osobno.