ATNEL tech-forum https://forum.atnel.pl/ |
|
Mam problem ze zrozumieniem działania? https://forum.atnel.pl/topic22204.html |
Strona 1 z 1 |
Autor: | AKSELINEK [ 29 kwi 2019, o 16:39 ] |
Tytuł: | Mam problem ze zrozumieniem działania? |
Witam mam pewien problem ze zrozumieniem działania pewnych zapisów języka C. Posłużę się przykładem zasięgniętym z lekcji z zielonej książki L17_PetitFS_WRITE: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Rozumiem że zmienna int0_flag raz na tyknięcię przerwania INT jest ustawiana na 1 dzięki temu jednorazowo jest spełniony warunek if ( int0_flag ) nie wiem czy do końca rozumem dalszy zapis: if( ++s_cnt==60 ) s_cnt=0; --- czy zmienna s_cnt za każdym razem jak pętla wraca od początku zwiększa się 0 cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy tak czy zwiększenie dokonuje się inaczej? A co znaczy zapis % w kolejnych warunkach: |
Autor: | iTTiny [ 29 kwi 2019, o 16:54 ] |
Tytuł: | Re: Mam problem ze zrozumieniem działania? |
% to dzielenie modulo -> Bluebook 1%3=1 2%3=2 3%3=0 4%3=1 ... Czyli po prostu reszta z dzielenia. Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka |
Autor: | AKSELINEK [ 29 kwi 2019, o 17:04 ] |
Tytuł: | Re: Mam problem ze zrozumieniem działania? |
Faktycznie jest to dzielenie dzięki wydaje się to takie proste , ale czy zrozumiałem dobrze że jest to podobne do zapisu: warunek język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. wykonuje się dla 0,3,6,9,12,15 itd warunek język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. wykonuje się dla 1,4,7,10,13,16 itd warunek język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. wykonuje się dla 2,5,8,11,14,17 czy tak? |
Autor: | Daro69 [ 29 kwi 2019, o 20:06 ] |
Tytuł: | Re: Mam problem ze zrozumieniem działania? |
AKSELINEK napisał(a): if( ++s_cnt==60 ) s_cnt=0; --- czy zmienna s_cnt za każdym razem jak pętla wraca od początku zwiększa się 0 cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy... mniej więcej... jeżeli program wejdzie w tego ifa, to najpierw zinkrementuje zmienną 's_cnt', potem sprawdzi czy nie jest czasem równa 60, - jeżeli jest, to wykona wpis '.. =0'. czyli jeżeli wejdzie z wartością '0', to najpierw zmieni na '1', a jeżeli wejdzie z wartością '59', to zmieni na 60 i porównując będzie zmuszona do wykonania ifa.(wyzerowania). AKSELINEK napisał(a): ...nuje się dla 2,5,8,11,14,17 czy tak? dokladnie tak. widzę po kodzie że masz podlączony wyświetlacz. możesz sprawdzić wypisując resztę z dzielenia różnych liczb przez różne liczby i wyświetlając na ekranie w sąsiedniej pozycji. pozdrawiam. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |