+ -
当前位置:首页 → 问答吧 → 怎么求不按字节对齐的结构大小

怎么求不按字节对齐的结构大小

时间:2010-08-11

来源:互联网

在程序中,我临时想取得不按字节的结构的大小,用完后恢复,有什么办法,在windows上和linux上分别有什么方法。

作者: boldeagle   发布时间: 2010-08-11

#progma pack (1) /*指定按1字节对齐*/

#progma pack () /*取消指定对齐,恢复缺省对齐*/

作者: 梅川内依酷   发布时间: 2010-08-11

用#pragma pack
定义两结构

作者: hellioncu   发布时间: 2010-08-11

struct A
{
};

#progma pack (1)
A a;
int iSize = sizeof(A);
#progma pack ()
这样行吗?

作者: boldeagle   发布时间: 2010-08-11

回复 boldeagle


    估计不行  还得两个 或者命令行宏定义吧

作者: 梅川内依酷   发布时间: 2010-08-11

回复 梅川内依酷


    啥意思?

作者: boldeagle   发布时间: 2010-08-11

回复 boldeagle


    gcc -D不知道能满足你不

作者: 梅川内依酷   发布时间: 2010-08-11

是不是结构定义后再加progma pack (1)没用,必须把定义放在progma pack (1)和progma pack ()之间

作者: boldeagle   发布时间: 2010-08-11

回复 boldeagle


    嗯

作者: 梅川内依酷   发布时间: 2010-08-11

那结构是别人先定义好的,我只是临时想求得不按字节对齐方式的结构大小,怎么办?

作者: boldeagle   发布时间: 2010-08-11

回复 boldeagle


    __attribute__((packed))

作者: 梅川内依酷   发布时间: 2010-08-11