当前位置: 代码迷 >> QT开发 >> VC++ 和 GCC 里字节对齐填充的关键字是什么?该怎么解决
  详细解决方案

VC++ 和 GCC 里字节对齐填充的关键字是什么?该怎么解决

热度:367   发布时间:2016-04-25 05:08:12.0
VC++ 和 GCC 里字节对齐填充的关键字是什么?
通信里的组帧和解码,因为计算机是32位对齐或者64位对齐的,不同类型的成员在内存中的实际位置可能不是按8位对齐排列的。

如一个帧是这样的

typedef struct
{
  quint8 head1;
  quint16 packetSize;
  quint8 head2;//地址不是3而是4

} PacketDef;

其他编译器里有如 __packed 这样的8位对齐填充关键字,不知VC++和 MINGW的GCC是什么?

------解决方案--------------------
#pragma pack(push) //保存对齐状态
#pragma pack(1)//设定为1字节对齐
//这里是你要对其的数据结构
#pragma pack(pop)//恢复对齐状态
  相关解决方案