联合体的有关问题,请帮忙
联合体的问题,请帮忙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 ()....