滨
滨滨
Unregistered / Unconfirmed
GUEST, unregistred user!
typedef struct {
APW_EV_TYPE type;
union {
HANDLE string_value;
do
uble real_value;
LONG long_value;
LPSTR string_ptr;
} value;
} APWC_EVALPB, FAR *APWC_EVALPB_PTR;
int a,b,c;
APWC_EVALPB eval;
a=sizeof(eval);
b=sizeof(eval.value);
c=sizeof(eval.type);
运行中发现a=16,b=8,c=4,为什么a-b-c=4多出了4个字节?
以上是我在开发一个dll时发现的,数据类型是第三方提供的接口,不能改动,用VC和Delphi都成功了,就是CB不成功,才发现CB的数据多了4个字节,为什么???在union的问题上,CB是不是非标准的?如何用CB实现同样的内存结构?
APW_EV_TYPE type;
union {
HANDLE string_value;
do
uble real_value;
LONG long_value;
LPSTR string_ptr;
} value;
} APWC_EVALPB, FAR *APWC_EVALPB_PTR;
int a,b,c;
APWC_EVALPB eval;
a=sizeof(eval);
b=sizeof(eval.value);
c=sizeof(eval.type);
运行中发现a=16,b=8,c=4,为什么a-b-c=4多出了4个字节?
以上是我在开发一个dll时发现的,数据类型是第三方提供的接口,不能改动,用VC和Delphi都成功了,就是CB不成功,才发现CB的数据多了4个字节,为什么???在union的问题上,CB是不是非标准的?如何用CB实现同样的内存结构?