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
, это означает, что бит в маске высок; но я получаю ошибку «ожидаемое выражение перед»! = «токен».ожидаемое выражение перед токеном '! =' ... Где я ошибаюсь?
Тогда я могу проверить [LIV_EME_UNO] только с переменной, а не с полем структуры? спасибо @sourav –
@ F.Guerinoni Что вы имеете в виду? Вам нужно иметь переменную 'struct', чтобы применить оператор' .', не так ли? –
Я использую 'Emergenza.Livello | = LIV_EME_UNO' и это работа, но' (Emergenza.Livello | = LIV_EME_UNO)! = 0' не работает ... –