C++ 如何在联合内部传递成员值(具有嵌套结构)
在我的一个项目中,我有一个工会C++ 如何在联合内部传递成员值(具有嵌套结构),c++,C++,在我的一个项目中,我有一个工会 typedef struct { teD eId; union { struct { UCHAR ucVolume; }stAng; enum { TEMP_MP=0, FD_MP, FD_HP,
typedef struct
{
teD eId;
union
{
struct
{
UCHAR ucVolume;
}stAng;
enum
{
TEMP_MP=0,
FD_MP,
FD_HP,
COHP,
PT_PARAM,
T_PARAM,
ME_TEST,
CK,
ER,
MIT,
FXSCR_IN,
F_OUT,
FEY,
FKEY,
FNT_HOLD,
FBSERT,
FOVE,
FBROR
}eud;
struct
{
UWORD ud;
enum
{
AR = 0,
ACE
}eAts;
enum
{
IM = -1,
ITY ,
PTY,
LOTY,
}eAe;
enum
{
APE = -1,
AHP,
AUP,
AP,
AMP,
AULMT,
ASERT,
AUE,
AOR
}eAude;
CHAR acPme[20];
}stAfo;
}una;
}tssg;
typedef struct
{
teD eId;
union
{
char Data[1032];
} unMsgBuf;
} tstMsg;
const BOOL cMpssk :: mbPsg (const tstMsg svd)
{
tssg &tstAuMsg = (tssg&) svd;
case 1:
{
if(tstAuMsg.una.stAfo.eAts == ACE)
在这里,我设置tstAuMsg.una.stAfo.eAts=1代码>但如果条件未通过,仍然会出现此情况
我不清楚什么是成功的if条件应该传递的确切值
这是小端处理器,被认为是32位整数
请求你的建议,并提供一些细节,说明失败的原因,从而对其有所帮助
谢谢,,
Karthick您是如何将值分配给tstAuMsg.una.stAfo.eAts的?我建议打印分配的值,然后进行检查。printf(“%d\n”,(int)tstAuMsg.una.stAfo.eAts);实际上,我正在运行用于单元测试的向量转换。式中,由于结构从一种类型转换为另一种类型,tssg&tstAuMsg=(tssg&)svd;通过用户代码,我将值指定为;const tstMsg svd={};tssg和tstAuMsg=(tssg和)svd;tstAuMsg.una.stAfo.eAts=ACE;这就是我分配值的方式。一旦我执行了这个程序,它就永远不会满足if条件if(tstaumgsg.una.stAfo.eAts==ACE)。看来我在为工会成员分配值时出错了。您是如何将值分配给tstAuMsg.una.stAfo.eAts的?我建议打印分配的值,然后进行检查。printf(“%d\n”,(int)tstAuMsg.una.stAfo.eAts);实际上,我正在运行用于单元测试的向量转换。式中,由于结构从一种类型转换为另一种类型,tssg&tstAuMsg=(tssg&)svd;通过用户代码,我将值指定为;const tstMsg svd={};tssg和tstAuMsg=(tssg和)svd;tstAuMsg.una.stAfo.eAts=ACE;这就是我分配值的方式。一旦我执行了这个程序,它就永远不会满足if条件if(tstaumgsg.una.stAfo.eAts==ACE)。看来我把值分配给工会成员是做错了。