[an error occurred while processing this directive]
|
|
typedef struct {
WORD state0:1;
WORD state1:1;
WORD state2:1;
WORD state3:1;
WORD state4:1;
WORD state5:1;
WORD state6:1;
WORD state7:1;
WORD state8:1;
WORD state9:1;
WORD state10:1;
WORD state11:1;
WORD state12:1;
WORD state13:1;
WORD state14:1;
WORD state15:1;
} state_t;
state_t new_state, last_state
...
if(changed = new_state ^ last_state)
{
mask = 1;
for(i = 0; i < 14; i++)
{
if(changed & mask)
{
pPnt = &Array.a[i];
...
}
mask <<= 1;
}
}
При изменении состояния взводятся соответствующие этим изменениям биты. Но если происходит изменение только одного бита я
все равно вынужден просматривать все 14(что не очень хорошо). Хотелось бы сделать так, чтобы например после хора я вижу что
изминилось два бита(причем известно каких, например 1 и 5 ), и я организую цикл до 2-х(по количеству изменений) и в нём присваиваю адрес
массива (1 и 5 соответственно). Не могу понять как это сделать, помогите!
E-mail: info@telesys.ru