结构体内的成员有时候会为了访问速度的原因,进行一些对齐,像前面的一篇文章写的那样,比如含有一个字节的char和一个整数int的结构体,大小是8,而不是5.有时候,会不需要这种对齐,
比如写一个Bitmap文件的头:这些头信息可以封装在两个结构体中:BITMAPFILEHEADER,BITMAPINFOHEADER,然后才是BMP数据。而这两个结构体中就的防止字节对齐的现象出现,我就犯过这样的错误。在linux中用__attribute__ ((packed)) ,在VC中:在需要紧凑对齐的代码段前后用#pragma pack(1), #pragma pack()包含
使结构体紧凑对齐:__attribute__ ((packed))
最新推荐文章于 2023-12-28 13:18:09 发布