struct STR_TEST
{
long m_lFileCode;
long m_lUnused[5];      //未使用
long m_lFileLength;
long m_lVersion; // 版本号 0xE803
long m_lShapeType;
double m_dXmin;
} ;
在VC6下,sizeof(STR_TEST)长度竟然48,如何才能变成44,望大侠帮忙

解决方案 »

  1.   

    在project setting中C++/Code generation/struct member alignment
    选中1 Byte.
      

  2.   

    谢谢 yym314(小鸟) ,我试试
      

  3.   

    慎用之!为了以后的兼容性,还是将结构手工对齐.
    struct STR_TEST
    {
    long m_lFileCode;
    long m_lUnused[5];      //未使用
    long m_lFileLength;
    long m_lVersion; // 版本号 0xE803
    long m_lShapeType;
    long m_lReserve; //struct 对齐
    double m_dXmin;
    } ;
      

  4.   

    #pragma pack(1)
    struct STR_TEST
    {
    long m_lFileCode;
    long m_lUnused[5];      //未使用
    long m_lFileLength;
    long m_lVersion; // 版本号 0xE803
    long m_lShapeType;
    double m_dXmin;
    } ;
    #pragma pack()