Strony

poniedziałek, 24 grudnia 2012

Wskaźniki, struktury, callbacki - jazda bez trzymanki

Witam,

Tym razem chciałbym wam przedstawić bardzo nietypowy poradnik. Dlaczego nietypowy? Ano dlatego, że chciałem wam pokazać jak ja zabieram się za pisania programu do procka tak od A do Z ale pod okiem wielkiego brata czyli kamery. Tak jakbym był w "Big Brother" ;) Co to oznacza?, to oznacza, że minuta po minucie widać czym się zajmuję. Niestety są wady takiego przekazu. Czas trwania. Straaaasznie długi, dlatego od razu ostrzegam wszystkich malkontentów. Jeśli nie chcecie oglądać to po prostu nie oglądajcie. Nie mam zamiaru później wysłuchiwać na blogu że to czy siamto was denerwuje ;) .... A teraz kilka słów, do tych, którzy gdzieś tam "po godzinach" znajdą czas żeby na spokojnie obejrzeć wszystkie części poradnika, tym bardziej, że ....



że przecież każdy posiadać będzie pod ręką pasek jak niżej:


czyli można sobie w dowolnym momencie przewinąć dalej, wstecz czy do miejsca, które np warto jednak posłuchać i obejrzeć drugi raz ;)

Powiem, wam że ja np osobiście zawsze uwielbiałem oglądać takie poradniki na żywo jak ktoś pisał kod, gdy uczyłem się kiedyś Delphi. Niestety taki przekaz na żywo powoduje to, że widać przecież dokładnie iż ja nie jestem żadną tam alfą i omegą wszechwiedzącą, że się mylę, że o czymś zapominam, że po drodze program nie działa mi tak jak bym tego chciał i sobie życzył, że muszę szukać błędu w kodzie i radzić sobie jakoś. Ponieważ mi to zawsze dużo dawało - oglądanie na żywo jak ktoś pisze - i nie tylko tego gdy nieomylny instruktor robił wszystko perfekcyjnie po kolei ale właśnie taki zwykły programista, który po prostu się myli. Dzięki temu widzę jak on sobie radzi, a fakt że mnie się to przydarza już mnie wtedy aż tak nie frustrował ;) ... więc może te osoby, które wytrwają - też uznają że warto było się pomęczyć i pooglądać  ten mój koci tok myślenia zakręcony czasem. UWAGA poniżej jak widzicie będą aż CZTERY odcinki a każdy z nich będzie trwał około godziny czasu! .... ale za to macie możliwość podglądania na żywo kogoś kto wprawdzie początkuje w języku C .... i przy okazji pokazuje na wizji swoje poczynania ;)

Jeśli ktoś będzie miał pytania to serdecznie zapraszam do zadawania, przy czym takie ogólne to tu na blogu natomiast bardziej specyficzne i związane z kodem to na forum:

www.forum.atnel.pl

Początek poradnika... hmmm może podszedłem zbyt humorystycznie ale mam nadzieję, że mi to wybaczycie ;)  ... z drugiej strony nie umiałem inaczej wytłumaczyć czy sugestywnie przekazać tego co dla mnie najważniejsze czyli:

Nawet gdy programujesz SAM to zachowuj się tak jakbyś pisał program w ZESPOLE programistów.

W książkach ciężko mi z tym dotrzeć i przekazać - a to na prawdę szalenie ułatwia życie (przynajmniej mnie), chociaż na początku wydaje się bardziej skomplikowane i czasochłonne. Niżej umieszczam po kolei części poradnika: 1,2,3 i 4:





Poniżej zamieszczę oczywiście cały kod programu z poradnika jako projekt pod Eclipse.


36 komentarzy:

  1. No cóż, twórz jak najwięcej i oby Tobie, Mirku tworzenie poradników nigdy się nie znudziło!...

    OdpowiedzUsuń
  2. Jestes Wielki Mirku dzieki , wspaniala robota .

    OdpowiedzUsuń
  3. To prawda jesteś jakiś wyjątkowy jak na te czasy :) oczywiście na +

    OdpowiedzUsuń
  4. Piękny prezent na święta.Dziękuję.

    OdpowiedzUsuń
  5. To ja czekam jak wyschła studnia na wodę na takie poradniki a niby ktoś gdera że za długi że Mirek coś tam się jąknie. Toż w ogóle niech zrezygnuje z nauki C.
    Ukłony w pas dla Mirka że poświęca swój cenny czas i chce przekazać wiedzę.
    Dzięki za poradnik.
    Arek

    OdpowiedzUsuń
  6. Wspaniały prezent!! Jak Ty Mirek znajdujesz na to czas?? Jestem pod wrażeniem przez cały czas jak potrafisz chętnie dzielić się swoją wiedzą! Trzymam kciuki i baaardzo chętnie obejrze kolejne warsztaty video!

    OdpowiedzUsuń
    Odpowiedzi
    1. 22 grudnia przyswajałem sobie temat wskaźniki, struktury z książki I, ....a tu taki wspaniały ciąg dalszy w postaci żywego poradnika. Dziękuję.

      Usuń
  7. naprawdę Super video poradnik,Dziękuje

    OdpowiedzUsuń
  8. Dziękuje za to co robisz, wiele się od Ciebie nauczyłem i ciągle się uczę korzystając z Twoich poradników. Gdyby tak jeszcze można byłoby je uzyskać w formacie pdf, szczęście byłoby pełne. Pozdrawiam Mirku i życzę szczęśliwego Nowego Roku. Zbyszek

    OdpowiedzUsuń
    Odpowiedzi
    1. Przecież w każdej chwili można stworzyć stenogram :)

      Usuń
  9. Oby to wszystko ukazało się kiedyś w książce, oby można było do tego w każdej chwili wrócić i oby tak nagrane poradniki były ciekawym multimedialnym dodatkiem do wspomnianej książki. Chwała że jest ktoś, kto chce się dzielić swoją wiedzą, doświadczeniami i nie chce zachować tego tylko dla siebie...

    Wyrazy uznania i szacunku.

    OdpowiedzUsuń
  10. Witam. Twój poradnik ogląda się jak trylogię TOLKIEN'a. Nie można się oderwać od tego :). Pozdrawiam i życzę masy nowych poradników w nowym roku :)

    OdpowiedzUsuń
    Odpowiedzi
    1. O Matko ;) aż tak ? to chyba nie ? ... ale się zaraz zarumienię ze wstydu .... nie mniej jednak dziękuję i cieszę się że mogłem pomóc.

      Usuń
  11. Wszystkim wam szanowni słuchacze dziękuję za te opinie i podtrzymywanie mnie na duchu, że jednak ta moja gadanina się komuś przydaje. No nic działam dalej - już właśnie wysmażył się kolejny poradnik ale tym razem dla totalnie początkujących ;)

    OdpowiedzUsuń
  12. ...jeszcze nie oglądałem(!) ale jak widzę, że czekają mnie aż prawie cztery godziny oglądania to się przerażam! Tak więc u mnie nie będzie słodzenia o tym, jakie to one są super i w ogóle ale bardziej krytyka ;)
    Na pewno da się skrócić te filmiki Panie Mirosławie, oglądałem wcześniejsze i zauważyłem, że momentami wywody są zbędne i wchodzą w pewien rodzaj beleterystyki :)
    Filmy są wartościowe jednak im krótsze tym bardziej były by konkretne (tak przynajmniej zakładam), gdyż czasem odczuwam, że odbiera Pan widza jako nic nie wiedzącego z elektroniki i programowania. Przecież skoro już ktoś zaczyna pisać programy i nawet przeczytał Pańskie książki to ma wiedzę już na jakimś poziomie - na pewno wie co to rezystor i jak podłączyć procesor na płytce stykowej. Tak więc moim zdaniem omawianie czegoś od podstaw podstaw i "wałkowanie od nowa" jest stratą czasu - bardziej położył bym nacisk na konkretne problemy, które pojawiają się na forum lub w mailach do Pana i filmiki robił krótsze. Na pewno by się je oglądało wygodniej.
    Mam nadzieję, że potrafi Pan zwięźle opowiadać o czymś konkretnym, gdyż idealnym mówcą jest ten, który o trudnych sprawach mówi w tak prosty, zwięzły i konkretny sposób :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Zgadzam się, filmiki da się skrócić i znam na to IDEALNY sposób, proszę je nakręcić samemu ;) Wierzę, że będą krótsze. Powiem więcej - jeśli przeraża Pana oglądanie tak długich poradników to tu też mam poradę, która w 100% rozwiąże pański kłopot. Proszę nie oglądać moich poradników. Gorąco do tego namawiam ;) Już nigdy proszę ich nie oglądać, będzie się Pan czuł lepiej ok?

      Odnośnie zarzutu, że traktuję widza jakby nic nie wiedział z elektroniki i programowania, to powiem tak. (Powiem ostro bo Pan mnie w tym momencie obraża!) Ponieważ jest to TAK BZDURNY zarzut i WYSSANY z palca (przepraszam ale inaczej nie mogę się do takich głupot odnieść) .... to domyślać się jedynie mogę, że albo cierpi Pan na jakieś kompleksy, albo manię wyższości. Jedno z dwóch. Ja mam zdecydowanie lepszy kontakt z moimi czytelnikami niż Pan. Ja tworzę poradniki czy piszę książki dla początkujących w tym także dla tych, którzy NIE WIEDZĄ CO TO JEST REZYSTOR, i może właśnie dlatego tak bardzo doceniają, to co robię, ludzie którzy dopiero zaczynają swoją przygodę i z programowaniem i z elektroniką. Bo potrafię coś tam przekazać również dla nich a nie tylko dla ORŁÓW i tych, którzy podniecają się tym, że już coś się nauczyli lecz nie potrafią innym przekazać swojej wiedzy. Za to potrafią być wspaniałymi malkontentami jak Pan ;)

      Więc jeszcze raz - skoro to co opowiadam jest wałkowaniem i stratą czasu to idź Pan do lasu na grzyby albo łowić ryby czy oglądać inne poradniki, bo nie obchodzi mnie pańskie zdanie.

      Nie raz już pisałem i nawet w poradniku mówiłem o takich MALKONTENTACH jak Pan ;) że nie jestem żadnym lektorem telewizyjnym, spikerem, nie mam idealnej dykcji, nie potrafię krótko i zwięźle opowiadać. Nie odpowiada to ??? to nie włączaj telewizora - PROSTE.

      Żegnam i obiecuję że kolejne biadolenie w takich kwestiach mi tu na blogu wykasuję. A jak potrafisz Pan robić lepiej - to jak mówiłem ZRÓB SAM, pokaż innym na youtube. Tym więcej pomożesz innym niż takim miernym biadoleniem. ;)

      Usuń
    2. Do "Anonimowy31 grudnia 2012 09:20" Tak masz rację najlepiej to zacząć do dupy strony...
      ", gdyż czasem odczuwam, że odbiera Pan widza jako nic nie wiedzącego z elektroniki i programowania."
      Dzięki temu poradnik jest dla tych co nic nie wiedzą i tych co wiedzą bardzo dużo a oni zawsze mogą przewinąć sobie filmik do miejsca które ich akurat interesuje... to nie jest zabronione.
      A i z racji ze Pan się nie podpisał to chyba się Pan wstydzi swojej wypowiedzi...

      Usuń
    3. no cóż, jak widzę ciężko przyjąć Panu krytykę. Wiadomo, najlepiej się czyta komentarze pochwalne, że super, że najlepsze itp. Jednak czasem proszę spojrzeć krytycznie na to co się tworzy, a efekty będą zdumiewające - tak się ewoluuje. Ja nie pisałem tego wszystkiego, aby Pana obrazić to bardziej mnie Pan obraża pisząc "abym szedł na grzyby czy do lasu"!
      Ja też uwielbiam oglądać video-tutoriale. Zaczynałem od Jeremy Cioara, który nauczył mnie dużo rzeczy z sieci Cisco, później tutoriale z net.tutsplus.com, na których Jeffrey Way uczył mnie jak pisać poprawnie Java Script itp. Pierwszy autor miał filmiki długie - 20 minut - 40 minut, jednak jak coś omawiał to skupiał się na konkretnym temacie np. konfiguracja protokołu routingu i nie wracał do omawiania jak się zaciska kabel typu B, bo jakieś minimum wiedzy odbiorca musiał mieć. Jednak oczywiście jego wywody były na takim poziomie, że nawet mega początkujący by zrozumiał.
      Z kolei Pan Way zwięźle i na temat (filmiki 10 minut - 30 minut) potrafi tak przekazać wiedzę, że bez zbędnych wywodów w konkretny sposób odbiorca otrzymuje dużą dawkę wiedzy. Proszę spojrzeć tutaj np.: https://tutsplus.com/course/improve-workflow-in-sublime-text-2/ (jest za darmo więc można sobie poklikać :) )
      Pańskie poradniki są bardzo dobre - nie stwierdzam, że nie. Ale chodzi mi o formę... 50 minut na jeden filmik x 4 jest ...ciężkie. Proszę rozważyć możliwość podzielenia ich na mniejsze części po np. 10 minut jak w przykładzie z mojego linku. Wtedy taki ktoś jak ja czy inna osoba gdy będzie potrzebowała to obejrzy sobie dwa filmiki, "przetworzy" informację, poćwiczy zawarty materiał i zacznie oglądać kolejny. Tak jak książka, która posiada rozdziały.
      Oto mi chodziło w moim wcześniejszym komentarzu, a nie o obrażanie Pana. Wcale nie musi być Pan lektorem telewizyjnym, aby przekazywać wiedzę - do tego się nie czepiam.

      Tak w ogóle czytam raz jeszcze to co Pan napisał i widzę, że nieźle Pan po mnie "pojechał"... szkoda, że mnie tak Pan ocenia, bo ja nie mam ani kompleksów, ani manii wyższości :( i pisałem to wszystko nie ze złością jakąś (liczba "uśmiechów" była dość znaczna) ale aby być może dać Panu jakieś wskazówki. No ale widzę, że jednak się nie udało :(

      co do Rafciu, Twoje "przedstawienie się" też nie jest imponujące, czym się różni "Rafciu" od "Anonimowy". Jeśli chodzi o mnie to nazywam się Jan Mazur i jak spodziewam się, że moje (dość "początkujące") konto na forum zostanie usunięte przez Pana Mirosława za mój komentarz.

      Usuń
  13. Jak zwykle - ciężko przyjąć krytykę.

    Już tłumaczę szanowny Panie Jan Mazur. Przede wszystkim widać jak Pan znosi krytykę - jeśli to w ogóle można nazwać krytyką. Dla mnie to zwykłe docinki. Tym razem jakoś napisał Pan swoje "ale" o wiele łagodniej ... a przedtem?

    - o boże jakie długie poradniki
    - o matko jakie nudne i z beletrystyką
    - o jezu traktuje pan widza jak ciemniaka
    - OMGH nie potrafi pan zwięźle opowiadać

    to jest mój blog, czyli jak dom, i jak ktoś włazi z butami i krzyczy jak to mu się wszystko nie podoba to pozostaje mi powiedzieć tylko to co napisałem wyżej. To nie żadna krytyka tylko czepialstwo i malkontenctwo a tego nienawidzę i z tym walczę i dlatego m.in założyłem nasze forum, bo miałem dosyć takich malkontentów na innych forach. Jak widać nie tylko ja - w tej chwili tworzy się spora społeczność ludzi, którzy zamiast MARUDZIĆ i NARZEKAĆ po prostu pomagają. A pisałem że skasuję ew wypowiedź na blogu .

    Nie ma to nic wspólnego z kontem na forum. Zresztą ostatnio to nie ja kasują czy usuwam czy banuję malkontentów z forum. Fakt moje wypowiedzi są często emocjonalne tak jak poradniki zresztą. I dlatego na naszym forum pojawili się świetni moderatorzy, którym też już się zdarzyło zbanować malkontentów. Więc jeśli Pan i tam wejdzie i będzie pisał że wszystko się nie podoba, że jest bleee ... zamiast pomóc komuś - to pewnie moderatorzy podejmą podobną decyzję - nie wiem. Ja nie wnikam tylko cieszę się że jest więcej takich ludzi jak ja, którzy mają dość narzekania.

    Wracając do pańskiej oceny, ja jestem sobie Kardaś a nie Pan Cioara czy Way. Ja inaczej tworzę poradniki. Tak opowiadam czasem może za dużo i zdaję sobie z tego sprawę, że to może i wada. Ale nie będę KAŻDEMU z osobna powtarzał w kółko że nie potrafię inaczej. A jeśli nie potrafię inaczej to nie oznacza, że przestanę się tym zajmować - bo jednak jest sporo ludzi, którzy jednak pomimo to potrafią coś z tego znaleźć dla siebie. Nie każdy jest idealny. Ani ja ani podejrzewam Pan. Jeśli jest odwrotnie i Pan jesteś IDEALNY to co złego w tym co napisałem wyżej tzn żeby Pan stworzył takie poradniki i opublikował, będą krótsze, lepsze itd. Jak mówię życzę tego Panu i sam chętnie pooglądam, ale jeśli zobaczę jakieś wady - to nie wlezę do Pana z komentarzami i nie będę się użalał - raczej podziękuję za to co w nich było dobrego dla mnie.

    A jak chcesz się wziąć Pan za KRYTYKĘ - to proszę - tylko odnieś się Pan do merytorycznej strony. Może gdzieś błędy popełniłem to chętnie tego posłucham i się ustosunkuję a może jeszcze inni na tym skorzystają bo dowiedzą się czegoś nowego - ja również. Bo jak mówię - ja jestem początkujący i wciąż się uczę. Do śmierci tak będzie ze mną.

    Wskazówki jak najbardziej przydadzą mi się - ale jeszcze raz powtarzam co do meritum a nie do tego że krzywo mówię, czy mam krzywe zęby , czy że drażni Pana mój styl opowiadania. To mnie w ogóle nie interesuje. A takie uwagi są jakże TYPOWE dla polskich forów i blogów. Jakaś nie wiem ukryta zawiść, zazdrość, kompleks czy co ? no nie wiem choinka wie co kieruje takimi ludźmi u nas w kraju. Ale na to nawet proszę mi już nie próbować odpowiadać.

    OdpowiedzUsuń
  14. Dobrze, kończę ten wątek, bo widzę że na ścianę trafiłem! Chciałem dobrze, a zostałem niepoprawnie odebrany... racja, to Pana miejsce i Pana Dom.

    Życzę Wszystkiego Najlepszego w Nowym 2013 roku! (od Serca życzę...)

    OdpowiedzUsuń
    Odpowiedzi
    1. Dziękuję uprzejmie i również życzę WSZYSTKIEGO NAJLEPSZEGO - do siego roku ;)

      Usuń
  15. Tak wspomniałeś o tych dławikach i mi się przypomniała jedna kwestia związana z podłączeniem FT232R. Otóż w nocie katalogowej tego układu oraz w jednym z artykułów jakiegoś pisma elektronicznego jest schemat podłączenia tego układu do gniazda USB. W obu tych schematach (są takie same) Vcc pochodzące z gniazda USB (czyli z PCta) i Vcc pochodzące z mojej płytki (zasilanie FT232R, AVRa itp)są oddzielone elementem nazywanym "Ferrite Bead". Domyślam się że chodzi tu o dławik? Tylko jakie parametry powinien mieć ten dławik (oporność, indukcja?) ? I czy połączenie dwóch vcc za pośrednictwem dławika nie spowoduje jakiegoś "konfliktu zasilań"?

    OdpowiedzUsuń
    Odpowiedzi
    1. No tak hmm ale to nie taki dławik o jakim myślisz tylko dławiki dla zakłóceń EMC, np tego typu:

      http://www.tme.eu/pl/katalog/?f_zamowienie=1#id_category=112359&page=7%2C20&s_field=artykul&s_order=ASC

      tylko trzeba sobie dobrać na odpowiedni prąd. Ja stosuję w zestawach uruchomieniowych ATB np taki ferryt/koralik SMD:

      http://www.tme.eu/pl/details/blm31pg601sn1l/ferryty-koraliki/murata/#

      widać go na schemacie np tutaj:

      http://atnel.pl/atb-przejsciowka-usb-rs232.html



      Usuń
  16. Witam, a ja z ogromną ciekawością oglądam te poradniki, mam już książkę z płytą , programatorek ale dopiero filmiki pozwalają mnie "wapniakowi" to ogarnąć mimo iż trochę się posługiwałem Bascomem - pozdrawiam i wypatruję kolejnych poradników

    OdpowiedzUsuń
    Odpowiedzi
    1. Tam zaraz "wapniakowi" ;) ja też wapniak ;) ..... a poradniki kolejne powoli się gotują ;)

      Usuń
  17. a tak z innej beczki....
    ładna ta pani na pierwszym obrazku tego artykułu :)

    OdpowiedzUsuń
    Odpowiedzi
    1. hahaha to fakt ale jej nie znam ;) pochodzi ona ze zdjęć zakupionych przez naszą firmę do strony www.atnel.pl - tam ją właśnie widać. A skojarzyło mi się to zdjęcie z callback'iem ;)

      Usuń
  18. Panie Mirku, co Pan myśli o projektowaniu aplikacji w taki sposób, aby jej poszczególne moduły komunikowały się nie za pośrednictwem wywołań funkcji, czy callbacków, ale za pomocą globalnego rozgłaszania zdarzeń ? Na początku rejestrujemy callback obsługi takich zdarzeń i implementujemy nasz moduł tak aby reagował na dane zdarzenie. Każdy moduł może za pomocą jednej metody wysłać zdarzenie, a wszyscy "słuchacze" je otrzymują jeden po drugim... Każdy moduł decyduje czy dane zdarzenie do interesuje czy też nie.
    W ten sposób mamy moduł funkcyjne, które nie muszą o sobie nic wiedzieć i składamy aplikację jak z kloców. Oczywiście każda metoda implementująca obsługę zdarzenia musi być napisana tak aby nie zajmowała więcej czasu procesowa niż jest to konieczne...
    Ja stosuje takie podejście do wszystkich moich projektów i jak na razie się to sprawdza. (oczywiście nie jest to rozwiązanie do wszystkiego, ale do prostych programów naprawdę sprawdza się świetnie).

    PS. Widziałem też implementację multi-zadaniowości, gdzie cyklicznie były przełączane zadania i podmieniany był ich kontekst. Też bardzo ciekawe rozwiązanie bo mamy wtedy kilka głównych pętli i każda może wykonywać swoje zadania. (niestety nie testowałem w praktyce...)

    Pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja przede wszystkim powiem tak, że broń Boże nie staram się jakoś narzucić takiego czy innego sposobu programowania jeśli chodzi o wielowątkowość. Moim NADRZĘDNYM celem jest stworzenie takich przykładów na których będę w stanie wyjaśniać początkującym w tym zakresie, że to nie jest trudne i jak można do tego podchodzić. To tak tytułem wstępu.

      Odnośnie tego co opisujesz to JAK NAJBARDZIEJ jest to również fajna metoda ale pewnie zdajesz sobie sprawę, że takich metod może być bardzo wiele w zależności od programisty ;) ... Osoby, które już lizną i poczują taki sposób programowania (sam chyba przyznasz) czują się jakby otworzyły się przed nimi drzwi do jakiegoś skarbca i teraz można czerpać garściami. Czyli pomysły się mnożą w głowie w postępie geometrycznym ;)

      W ogóle zasada rozdziału projektu na część abstrakcyjną (oderwaną od sprzętu) to właśnie tak na prawdę tworzenie takiej jakby też pseudo obiektowości, a z rozgłaszaniem zdarzeń, kolejkowaniem to już nam się robi prawie mini system operacyjny do którego można dodawać kolejne klocki.

      Ja też widziałem wiele różnych implementacji wielo-zadaniowości na takie mikrusy 8-bitowe. Ale spróbuj czasem wyjaśnić to komuś żeby zrozumiał to od podstaw gdy jeszcze nie wie dokładnie z czym się je "wielozadaniowość" .... Ja sam zresztą wolę czasem uprościć pewne rzeczy i zrobić po swojemu. Zresztą wiesz? projekt projektowi nie równy i czasem do zbyt prostych rzeczy (przyznam się bez bicia) nie chce mi się nawet tworzyć całej obudowy zdarzeniowości, calbackowości itp ;) a sięgnę pro jeszcze prostsze metody zwykłego rozdzielania czasu pomiędzy kilka prostych zadań w pętli głównej za pomocą kilku timerów programowych. Jednak gdy projekt rośnie - to idziemy w takich kierunkach o jakich - słusznie zresztą piszesz.

      Koniec końców - wszystko sprowadza się do NAJWAŻNIEJSZEJ rzeczy - umiejętności tworzenia funkcji nieblokujących ;) a to niestety wręcz samo podsuwa powoli (i dobrze) myśli o rozdzielaniu zadań na różne sposoby.

      Uważam, że wystarczy tylko te proste zasady wszczepić tym, którzy lubią i chcą się uczyć tu języka C a dalej prześlicznie widać jak sami ROSNĄ ;) ba - stają się lepsi od nas ;) .... to jest TO! To jest mój cel.

      Usuń
  19. Dziś w swojej długiej drugiej drodze powrotnej z pracy oglądałem drugą część poradnika o wskaźnikach i muszę się przyznać, że ani o krok wyjaśniło mi sprawa wskaźników. Znam jej definicję (znałem ją dawniej), ale nie potrafię sobie wyobrazić po co stosuje się te wskaźniki, a nie po prostu same zmienne albo funkcje. Co właściwie robią te wskaźniki, że są one tak użyteczne w języku C?
    Druga sprawa, to określanie typu wskaźnika, skoro one są adresami danej albo funkcji, to przecież adresy są liczbami całkowitymi i dodatnimi, to po co ustalać ich tych?
    Wciąż czekam na książkę i mam nadzieję, że po jej przeczytaniu wyjaśni mi się to bardziej.
    Chciałem napisać o tym na forum, ale nie wiedziałem, w którym mogłem to zrobić, być może w części nt języka c.
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Zdecydowanie polecam najpierw przeczytać książkę ;) to pozwoli najpierw odpowiedzieć sobie na podstawowe pytania czym są wskaźniki w C, i po co np są ich typy ... A później stopniowo przyjdzie zrozumienie patrząc na ich zastosowania w przykładach w książce. Ponoć - tak niektórzy czytelnicy piszą, ponoć bardzo fajnie i całkowicie inaczej niż w innych książkach - zostały tutaj w tej książce one przedstawione. To pomogło bardzo wielu osobom, nawet takim, które mi pisały, że wcześniej programując nawet na PC, myślały że wiedzą dokładnie o co chodzi we wskaźnikach a dopiero to moje wyjaśnienie pomogło zrozumieć to naprawdę dogłębnie ;)

      a jeśli jeszcze po przeczytaniu jakieś pytania ci się nasuną to śmiało wal jak w dym na forum - jest tam dział na temat języka C dla AVR przecież ...

      Usuń
  20. Witam,
    przegląd sobie filmiki i zaciekawiła mnie funkcja
    TSNAKE * snakes( int8_t n ) {

    if( n == -1 ) init_snake1();
    if( n == -2 && snake_cnt == 2 ) init_snake2();

    if( snake_cnt == 1 && n == 1 ) return 0;

    return &snake_tab[n];
    }
    jeśli w argumencie podamy -1 lub -2 to co zwróci funkcja w tablicy return &snake_tab[n] ???

    OdpowiedzUsuń
  21. Witam, od roku chyba nikt do tego tematu nie zaglądał ,ja dopiero teraz trafiłem na ten poradnik.
    Wydaje mi się ,że udało mi sie wreszcie zrozumieć wskaźniki.

    Pozostaje jedna kwestia ,która mnie trapi.
    Podam przykład: używając zwykłej funkcji ,podcas przekazywania argumentów tworzy się ich kopia i rośnie stos,OK.
    Czy to znaczy ,że jak używam wskażnika * i operatora pobrania adresu $ ,to gdy operacje są wykonywane na oryginalnych zmiennych ,oznacza to że zadziała szybciej i nie przyrośnie nam żaden stos?

    Pytam ,bo to dla mnie bardzo ważne ,by wreszcie do końca zrozumieć wskaźniki ,pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. No DOKŁADNIE o to chodzi ;) dobrze to rozumiesz

      Usuń
  22. i znow rok minal;)
    potrzebuje pomocy panowie. mam9 klawiszy kazdy reaguje na wcisniecie callbackiem ja w superdebounce, ale...
    musze przy kazdym przycisku wywolac inna funkcje i podac inny argument... i w zwiazku z tym pytanie: jak zarejstrowac takiego callbacka?? tu w funkcji superdebounce w odpowiedzi na wcisniecie KEY[0] wywoluje sobie funkcje np zmien(licznik) ale w odpowiedzi na wcisniecie KEY[1] chcialbym wywolac funkcje ustaw(interfejs) i za diabla nie wiem jak, pewnie jest to latwe tylko ja nie wiem jak to ugryzc. jak wpisuje KEY[0].keyshort = ustaw(interfejs); to wali blad.. Madre Glowy pomozcie prosze.

    OdpowiedzUsuń
  23. Dziękuję Panie Mirku za obszerny materiał, na prawdę dużo wnosi dla samouka i studenta, który trochę liznął tematyki na zajęciach. Pozdrawiam serdecznie Mateusz

    OdpowiedzUsuń