Salve a tutti, sono nuovo...mi sono iscritto per chiedervi un aiuto
ho una funzione cosi' formata:
chiamante:
x= calc(&unlock_key[0],3,KI,KII);
funzione:
static UI_16 calc(UI_8 *data, UI_16 Num, UI_16 K1, UI_16 K2)
{
UI_16 x;
UI_8 NextByte;
UI_8 BitCount;
UI_8 carry;
x= 0xa5a5;
while (Num-- > 0) {
BitCount = 0;
NextByte = *data++;
while(BitCount < {
carry = (char)(x & 0x0001);
x = x >> 1;
if (carry ^ (NextByte & 0x1))
{
x= x^ (KII^KI);
}
NextByte = (UI_8)(NextByte >> 1);
BitCount++;
}
}
return(x);
}
Le mie domande sono le seguenti:
- while (num-- > 0) come funziona? quante volte fa esegue il while? fa prima il -1 e poi confronta o confranta e poi decrementa?
- NextByte=*data++ cosa fa? salva in nextbyte il valore del vettore unlock_key[0] e incrementa di a ogni iterazione del while il valore contenuto in 0 o a ogni iterazione incrementa il valore dell'indice e salva il valore unlock_key?