ATNEL tech-forum https://forum.atnel.pl/ |
|
TWI, rozróżnienie funkcji https://forum.atnel.pl/topic22599.html |
Strona 1 z 1 |
Autor: | moscow [ 3 paź 2019, o 14:58 ] |
Tytuł: | Re: TWI, rozróżnienie funkcji |
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 |
Autor: | mario2015 [ 3 paź 2019, o 21:57 ] |
Tytuł: | Re: TWI, rozróżnienie funkcji |
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. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |