Pomoc w zrozumieni linni kodu

0

Witam. Mam taki problem, że nie wiem co dokładnie dzieje się w tym if'ie. Czy mógłby mi to ktoś dokładnie wyjaśnic ?

 if((*PIOC_PDSR&(1<<5))!=(1<<5)) i==0 ? i=99 : --i; 

Do tego kodu jest załaczone makro, raczej nie sa potrzebne, ale je załączam.

 #define PIOC_PDSR (volatile unsigned int*)0xfffff63C
3

Jeżeli wartość w pamięci pod adresem 0xfffff63c nie ma ustawionego 5 bitu to wtedy, jeśli i == 0 to i = 99 w przeciwnym wypadku obniż wartość i o 1.

2

Przepisane do normalnej postaci:

if((*PIOC_PDSR & (1<<5))==0) {
    if (i==0)
      i=99;
    else 
       --i;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1