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
不同,则表示掩码中的位为高;但我得到错误"预期的表达式在'!='令牌"
答案 0 :(得分:5)
在您的代码中,Emergenza
本质上是数据类型,而不是变量。您需要具有该类型的变量才能使用成员访问运算符.
要使Emergenza
变量而不是数据类型,请执行以下操作:
struct Emergenza {
int Tipo;
short Livello;
} Emergenza;
总之,请移除typedef
。