#pragma pack(1)和
#pragma pack(push 1)

解决方案 »

  1.   

    不同。
    后一句是要将前一种 对齐方式 入栈
    以便于
    #pragma pack(pop)
      

  2.   

    对齐方式入栈有啥用?是否只在compile中入栈?
    能举个有用的例子吗?
    还有我发现pack根本不起作用,譬如我定义一个struct
    typedef struct{
            int a;
            short b;
            char c;
    } TestPack;
    这个东东不管用什么pack(n)包起来它在memory中都一样,怎么回事?
      

  3.   

    突然想问#pragma pack是否只在compile期间有用?
      

  4.   

    你写错了
    #pragma pack(1)和
    #pragma pack(push 1)第二行不是这样写,是这样的:
    #pragma pack(push, 1)事实上 “liugy(光哥 没有做不到 只有想不到)” 已经回答对了,就是他说的区别。
      

  5.   

    你试试对下面的结构求sizeof
    #pragma pack(push, X)
    typedef struct NODE
    {
        int x;
        char c;
        int y;
    }NODE;
    #pragma pack(pop)X分别用不同的值,你求求sizeof看看,你会明白的。
    X     sizeof(NODE)
    1     9
    2     10
    4     12
    ...