红联Linux门户
Linux帮助

linux+gcc下指定对齐方式

发布时间:2008-08-03 01:32:46来源:红联作者:Courage
程序中可以指定变量在内存中的对齐方式,按照字节对齐、4字节对齐、8字节对齐等。使用如下命令对:

引用:
#pragma pack(push, 4)
#pragma pack(pop)


可以看看下面的程序会输出什么?

引用:
#include

#pragma pack(push, 4)

struct a
{
short v1;
int v2;
};

struct b
{
short v1;
short v2;
char c;
};

struct c
{
struct a v3;
struct b v4;
};

int main()
{
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(struct a));
printf("%d\n", sizeof(struct b));
printf("%d\n", sizeof(struct c));
}

#pragma pack(pop)
文章评论

共有 3 条评论

  1. dutian 于 2008-08-06 12:58:42发表:

    一般也用不到吧,对齐不好,小心程序挂了

  2. akaedu008 于 2008-08-06 09:55:04发表:

    (6)m:b

  3. hackersea 于 2008-08-05 00:20:02发表:

    2
    1
    8
    6
    16

    :0wl;l1