我有以下结构定义:
typedef union U08_16_t
{
unsigned long s32;//message32
unsigned char sb32[4];//message_bytes1
}b32;
struct t72
{
unsigned char HH;
b32 wH;
b32 wL;
};
#define MfrCode TCDU.wL.sb32[2];
#define subclass TCDU.wH.sb32[3];
#define MRF 34
extern struct t72 xdata TCDU;
现在稍后在代码中,在将一些值输入结构变量TCDU之后,我试图将MfrCode的值(#defined为TCDU.wL.sb32 [2])与常量MRF进行比较。在上面定义为34,但是我在这行代码上遇到错误:
...
if(MRF != MfrCode)
return FALSE;
...
我不知道为什么,任何人都可以帮助我。
答案 0 :(得分:5)
你需要摆脱#defines中的分号 - 更改:
#define MfrCode TCDU.wL.sb32[2];
#define subclass TCDU.wH.sb32[3];
#define MRF 34
为:
#define MfrCode TCDU.wL.sb32[2]
#define subclass TCDU.wH.sb32[3]
#define MRF 34