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

联合体的有关问题,请帮忙

2013-08-01 
联合体的问题,请帮忙typedef struct _PDH_FMT_COUNTERVALUE {DWORDCStatusunion {LONGlongValuedoubledo

联合体的问题,请帮忙

typedef struct _PDH_FMT_COUNTERVALUE {
    DWORD    CStatus;
    union {
        LONG        longValue;
        double      doubleValue;
        LONGLONG    largeValue;
        LPCSTR      AnsiStringValue;
        LPCWSTR     WideStringValue;
    };
} PDH_FMT_COUNTERVALUE, * PPDH_FMT_COUNTERVALUE;


程序A中
PDH_FMT_COUNTERVALUE cv;
获取到cv的内存是 00 00 00 00 7c ed 18 00 fa 7c 00 00 ac 00 00 00
cv.longValue值为31994(即FA 7C)
程序B中
PDH_FMT_COUNTERVALUE cv;
获取到cv的内存是 00 00 00 00 ec ee 18 00 9a 7c 00 00 ac 00 00 00
cv.longValue值为1634028
怎么回事?

应该A,B程序中的cv.longValue的值是差不多大小的.


[解决办法]
显然是B程序有地方用 #pragma pack (4)了,然后还没有用 #pragma pack ()....

热点排行