13rooms 攻略:C++Builder中#pragma的问题

来源:百度文库 编辑:高考问答 时间:2024/04/30 08:34:01
看程序时发现头文件中出现
#pragma pack(push,1)
#pragma pack(pop)
包住一些数据结构,是什么意思,有什么用,高手解释一下

由于C的struct存在对齐状况,pragma pack可以指定你自己的字节对齐方法,通常我们为了保存系统原先的字节对齐,只对我们需要的结构指定我们自己的对齐方法的时候,就需要上面的预编译命令:
#pragma pack(push) //保存以前的对齐状态,push是将以前的对齐状态压入栈
#pragma pack(1) // 指定新的对齐状态,1个字节,可以和上面写在一起
//定义你的结构,这里的结构对齐方式按上面指定的字节对齐方式
//…………
#pragma pack(pop) // 弹出栈,恢复以前的对齐状态

//这里的结构对齐方式又回到系统默认的方式了.