首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2012-02-04 
VC++ 和 GCC 里字节对齐填充的关键字是什么?通信里的组帧和解码,因为计算机是32位对齐或者64位对齐的,不同

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)//恢复对齐状态

热点排行