我试图读取二进制文件.问题是该文件的创建者没有时间将数据结构正确地对齐到它们的自然边界,并且所有内容都紧密排列.这使得使用C++结构很难读取数据.
有没有办法强行struct打包紧?
例:
struct {
short a;
int b;
}
Run Code Online (Sandbox Code Playgroud)
上面的结构是8个字节:2 short a个用于填充,2个用于填充,4个用于填充int b.但是,在磁盘上,数据只有6个字节(没有2个字节的填充用于对齐)
请注意,实际的数据结构是数千个字节和许多字段,包括几个数组,因此我不希望单独读取每个字段.