#pragma pack 在BITMAP结构体定义中的使用
来源:互联网 发布:海关数据有用么 编辑:程序博客网 时间:2024/05/17 07:13
定义BITMAP 文件信息头,位图信息头的 代码 如下:
#pragma pack(push) /* 将当前pack设置压栈保存;把原来对齐方式设置压栈*/
#pragma pack(1) /* 设新的对齐方式设置为一个字节对齐,必须在结构体定义之前使用,这是为了让结构体中各成员按1字节对齐 */
typedef struct tagBITMAPFILEHEADER { /* bmfh */ //文件信息头
unsigned short bfType;
unsigned long bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned long bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER { /* bmih */ //位图信息头
unsigned long biSize;
unsigned long biWidth;
unsigned long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned long biCompression;
unsigned long biSizeImage;
unsigned long biXPelsPerMeter;
unsigned long biYPelsPerMeter;
unsigned long biClrUsed;
unsigned long biClrImportant;
} BITMAPINFOHEADER;
#pragma pack(pop) /* 恢复先前的pack设置;作用:恢复对齐状态*/
---------------------------------------------------------------------------------
注意:一定要让结构体中各成员按1字节对齐,否则就不能保证文件信息头的大小为14字节,位图信息头为40字节了!
加入push和pop可以使对齐恢复到原来状态
- #pragma pack 在BITMAP结构体定义中的使用
- 在#pragma pack(4)和#pragma pack(8)的情况下,结构体的大小分别是
- #pragma pack 结构体对齐编译器选项
- typedef在结构体定义中的使用
- #pragma pack(n)使用
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack) (转载)
- 结构体对齐的具体含义(#pragma pack)
- 结构体对齐的具体含义(#pragma pack)
- 第一篇博文 写给自己未来十年
- ADS1.2 安装问题
- 二分图之KM算法
- mac删除分区并合并分区
- QT小知识点(4) -QT中的&和tr("字符串")
- #pragma pack 在BITMAP结构体定义中的使用
- 解决UIScrollView把UITableViewCell的点击事件屏蔽了
- 2017年4月
- 复习笔记--this&static
- 06-图3 六度空间 (30分)
- 2017.5.3哈弗曼树编码算法实践
- Selenium获取微博Cookie
- 百度网盘热门资源推荐
- GDOI2017滚粗记