Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 13 kwi 2025, o 10:20


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 3 paź 2019, o 14:58 
    Offline
    Użytkownik

    Dołączył(a): 09 lip 2019
    Posty: 116
    Pomógł: 11

    Nie wiem, czy takie wyjaśnienie wystarczy... ale generalnie - jeśli funkcja nic nie zwraca - wtedy stusuje się pusty typ danych (void) - i wtedy taka funkcja jest trochę odpowiednikiem procedury w PASCALu.
    http://www.algorytm.edu.pl/funkcje-w-c/funkcje-typu-void.html
    Jeśli funkcja ma coś zwrócić przez 'return' to trzeba podać jaki ma to być typ - ponieważ TWI_read zwraca bajt pobrany z interfejsu TWI - to użyty został typ danych uint8_t .

    Jeśli nie poda się typu danych, wtedy kompilator domyślnie zamieni to na int, jednak w pierwszej z tych funkcji założyłbym, że to po prostu edycyjna pomyłka i tam też powinien się znaleźć void.
    Zwykle kompilator ostrzeże o takim przypadku dwoma warningami
    Severity Code Description Project File Line
    - Warning return type defaults to 'int'
    - Warning control reaches end of non-void function



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2019, o 21:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 323
    Lokalizacja: Rybnik
    Pomógł: 23

    Różnice wg. mnie:
    TWI_Start(); taki zapis to wywołanie funkcji TWI_Start
    void TWI_Stop(void); to jest funkcja bez argumentów i nic nie zwraca
    void TWI_write(uint8_t bajt); to funkcja, do której przekazujemy argument (zmienną bajt) typu uint8_t
    uint8_t TWI_read(uint8_t ack); to funkcja, do której przekazujemy argument (zmienną ack) typu uint8_t a funkcja ta zwraca nam jakąś wartość typu uint8_t poprzez return

    To tyle. Jeśli się mylę to niech mnie ktoś poprawi. Człowiek omylnym przecież jest.

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO