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/