'!=' 标记之前的预期表达式...我哪里错了?
expected expression before '!=' token... Where I'm wrong?
enum LIVELLI_EMERGENZA {
LIV_EME_UNO = 0x0001,
LIV_EME_DUE = 0x0002,
LIV_EME_TRE = 0x0003
};
typedef struct Emergenza {
int Tipo;
short Livello;
} Emergenza;
void TrovaEmergenze()
{
if(INPUT_GET(IN_FUNGO_EMERGENZA)) {
Emergenza.Tipo |= EME_FUNGO_PREMUTO;
Emergenza.Livello |= LIV_EME_UNO;
}
if((INPUT_GET(IN_FC_CARTER_LAMA))){
Emergenza.Tipo |= EME_CARTER_LAMA_APERTO;
Emergenza.Livello |= LIV_EME_DUE;
}
}
char EmeLivello1()
{
if((Emergenza.Livello & LIV_EME_UNO) != 0)
return 1;
return 0;
}
评估完面具 emergenza.livello
我将用 & LIV_EME_UNO
检查它。如果与0
不同,则表示掩码中的位为高;但我收到错误 "expected expression before '!=' token".
在您的代码中,Emergenza
本质上是一种数据类型,而不是变量。您需要具有该类型的变量才能使用成员访问运算符 .
要使 Emergenza
成为变量而不是数据类型,请执行以下操作:
struct Emergenza {
int Tipo;
short Livello;
} Emergenza;
总而言之,删除 typedef
。
enum LIVELLI_EMERGENZA {
LIV_EME_UNO = 0x0001,
LIV_EME_DUE = 0x0002,
LIV_EME_TRE = 0x0003
};
typedef struct Emergenza {
int Tipo;
short Livello;
} Emergenza;
void TrovaEmergenze()
{
if(INPUT_GET(IN_FUNGO_EMERGENZA)) {
Emergenza.Tipo |= EME_FUNGO_PREMUTO;
Emergenza.Livello |= LIV_EME_UNO;
}
if((INPUT_GET(IN_FC_CARTER_LAMA))){
Emergenza.Tipo |= EME_CARTER_LAMA_APERTO;
Emergenza.Livello |= LIV_EME_DUE;
}
}
char EmeLivello1()
{
if((Emergenza.Livello & LIV_EME_UNO) != 0)
return 1;
return 0;
}
评估完面具 emergenza.livello
我将用 & LIV_EME_UNO
检查它。如果与0
不同,则表示掩码中的位为高;但我收到错误 "expected expression before '!=' token".
在您的代码中,Emergenza
本质上是一种数据类型,而不是变量。您需要具有该类型的变量才能使用成员访问运算符 .
要使 Emergenza
成为变量而不是数据类型,请执行以下操作:
struct Emergenza {
int Tipo;
short Livello;
} Emergenza;
总而言之,删除 typedef
。